»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by lichtkind on 5 March 2010. |
|||
00:05
yinyin joined
00:11
leprevost_ joined,
leprevost_ left
00:27
lest_away is now known as lestrrat
00:29
ashleydev left
00:31
lestrrat is now known as lest_away
|
|||
dalek | kudo: 1277e18 | pmichaud++ | docs/ROADMAP: Add closures to ROADMAP (so we don't forget about them :-). |
00:36 | |
00:40
lest_away is now known as lestrrat,
masonkramer left
00:43
masonkramer joined
00:44
rgrau joined
|
|||
sorear | TimToady: Where are native types in the type hierarchy? | 00:54 | |
01:01
wolverian left,
Transformer joined
01:03
Transformer left
|
|||
diakopter | heh | 01:04 | |
they are at the bottom/top, imho | 01:05 | ||
seeing as how they auto-upgrade to their InitialCaps equiv | |||
when needed | 01:06 | ||
I wish I understood that better. | |||
sorear | my interpretation of S12 is that my int $foo can hold any object which answers true to .isa(int) | 01:08 | |
which is ... not ideal | |||
diakopter | :'( | 01:09 | |
01:09
azert0x left
|
|||
diakopter | priviledged -> typo in S12 | 01:10 | |
spello | |||
pugssvn | r31404 | diakopter++ | [S12] sppelo | 01:14 | |
diakopter | and then on the next line | 01:15 | |
"All constraints considered in type narrowness." | |||
that's not a sentence | |||
01:16
Fozo joined
|
|||
pugssvn | r31405 | diakopter++ | [S12] verbo | 01:17 | |
01:28
skids joined
|
|||
cj | diakopter: lolz @ sppelo | 01:29 | |
sorear: right. it should be .isan(int) to be ideal, rite? | 01:30 | ||
cj considers making a .isan() just to increase his famousness | 01:31 | ||
01:33
TiMBuS joined
|
|||
TimToady | sorear: think of them as subset types of the non-native equivalent type, where the constraint determines what will or will not fit into the storage | 01:34 | |
e.g. subset uint8 of Int where 0..255; | 01:35 | ||
so calculations are really done in the base type, and it's only when they need to be reinstalled into storage that the constraint is enforced | 01:36 | ||
decommuting & | |||
01:43
kazoo joined
|
|||
Fozo | umm | was trying toconfigure Rakudo on Windows andgot an error can anyone help? | 01:44 | |
01:44
plobsing joined
01:45
kazoo left
01:49
shade_ is now known as \shade\
|
|||
[Coke] | I don't have windows atm, but maybe. | 01:49 | |
can you nopaste the error you're getting? 9and teh steps you took to get the error?) | |||
spinclad | TimToady: S03:2045 : s/rangechar range/char range/ ? | 01:52 | |
(r31271) | 01:53 | ||
Fozo | sry coke afk umm yah I guess I can write it out put hold on it may take while | ||
dalek | ok: f022fc4 | (Hongwen Qiu)++ | src/subs-n-sigs.pod: [subs-n-sigs.pod] typo |
01:54 | |
01:55
whiteknight left
|
|||
Fozo | how can I get started devolping perl? | 01:55 | |
sorear | Fozo: there's a menu item, Mark I think it's called | 01:57 | |
Mark the error message | |||
Copy | 01:58 | ||
paste into the text box on paste.lisp.org/new/perl6 | |||
then copy the URL here | |||
Fozo | it is from the command line | ||
01:58
molaf joined
|
|||
sorear | How should I know? You're the one with the error message. | 01:59 | |
Fozo | I ment I can not copy from the command line | ||
sorear | You could copy from the command line in Windows 98 | 02:00 | |
Fozo | well this is not windows 98 | ||
sorear | Which is it? Maybe someone here knows | ||
02:01
rgrau left
|
|||
diakopter | you can copy from the command line in all versions of Windows afaik | 02:01 | |
Fozo | XP | ||
sorry I'm mad theres an annoying fly flieing around me and my sound is completly screwed up and how? | 02:02 | ||
02:02
redicaps joined
|
|||
diakopter | you can google for that question | 02:03 | |
Fozo | mark does nothing | ||
diakopter | www.google.com/search?hl=en&q=w...mmand+line | ||
Fozo | Reading configuration information from parrot_install/bin/parrot_config ... | 02:04 | |
hold on let me just write it out | 02:07 | ||
Reading configuration information from parrot_install/bin/parrot_config ... | 02:08 | ||
'parrot_install' is not recognized as an internal or external command, | |||
operable program or batch file. | 02:09 | ||
Died at configure.pl line 119. | |||
there mark worked | |||
no answer? | 02:16 | ||
02:16
dju joined
|
|||
sorear | using paste.lisp.org is non-negotiable | 02:16 | |
this is your only warning | |||
your computer is completely screwed up | 02:17 | ||
it shouldn't have said "operable program or batch file" twice | |||
needs to be replaced, probably | 02:18 | ||
Fozo | no sorry I just typed it twice, \\ | 02:20 | |
02:20
supernovus joined
02:24
colomon joined
02:26
supernovus left
|
|||
redicaps | rakudo: sub human ($name,$gender){say $name~' ~~'~$gender}; human(name => 'hu','male' | 02:27 | |
p6eval | rakudo 00efa1: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11» | ||
redicaps | rakudo: sub human ($name,$gender){say $name~' ~~'~$gender}; human(name => 'hu','male') | ||
p6eval | rakudo 00efa1: OUTPUT«hu ~~male» | ||
redicaps | sub human ($name,$gender){say $name~' ~~'~$gender}; human(name => 'hu', gender => 'male') | 02:28 | |
rakudo: sub human ($name,$gender){say $name~' ~~'~$gender}; human(name => 'hu'); | |||
p6eval | rakudo 00efa1: OUTPUT«Not enough positional parameters passed; got 0 but expected 2 in 'human' at line 11:/tmp/dFmB8XJQne in main program body at line 11:/tmp/dFmB8XJQne» | ||
redicaps | rakudo: sub human ($name,$gender){say $name~' ~~'~$gender}; human(name => 'hu', gender => 'male') | 02:29 | |
p6eval | rakudo 00efa1: OUTPUT«hu ~~male» | ||
redicaps | Hi, perl6. What is exactly the difference between positional parameters and named parameters? | 02:30 | |
rakudo: sub human ($name,$gender){say $name~' ~~'~$gender}; human(name => 'hu'); | 02:31 | ||
p6eval | rakudo 00efa1: OUTPUT«Not enough positional parameters passed; got 0 but expected 2 in 'human' at line 11:/tmp/GufexSV6Xc in main program body at line 11:/tmp/GufexSV6Xc» | ||
redicaps | well, It might should be "got 1 but expected 2" ? | 02:32 | |
Fozo | thans for the help guys! | ||
02:32
Fozo left
|
|||
sorear | TimToady: Suppose I have an $object CREATED with a repr of P6hash. How can I hashily use $object? | 02:33 | |
TimToady | redicaps: see S06:785 or thereabouts | 02:34 | |
02:35
JimmyZ joined
|
|||
JimmyZ | rakudo builds failed on Windows XP, see gist.github.com/447846 | 02:36 | |
TimToady | sorear: I don't know. I'd probably use 'does | ||
'does Associative' | |||
the repr API is still subject to some amount of slop | |||
the SMOP folks probably have some ideas on that particular Q | 02:37 | ||
since they're likely to be interoperating with P5Hash at least | |||
sorear | ok | 02:39 | |
I'm currently fleshing out the model for mapping Perl 6 to the CLR (.NET) | |||
TimToady | in some sense that's outside the purview of P6, except insofar as P6 defines multiple responder interfaces | ||
sorear | it looks like I'm going to be using three representations mostly | ||
- a null representation for proto-objects | |||
- a hash representation for open classes | 02:40 | ||
- a native CLR object representation for closed classes with only HardRoutine methods | |||
TimToady | I think smop was using some $obj.^!foo syntax for RI calls | ||
jnthn++ would know if rakudo does something similar somewhere | 02:41 | ||
since they basically use Parrot hashes, I think | |||
it's one of things I'd kinda like to see fought out by the various implentations | |||
*men | 02:42 | ||
sorear | S02 talks about P6opaque as if it were a full-fledged type in its own right | ||
What are the valid operations on it? | |||
TimToady | btw, that's for cleaning up the pad mess; my dev computer was relatively inoperable until this afternoon... | 02:43 | |
well, looking up slots via the $!foo syntax, mostly, however that looks to the RI | 02:44 | ||
redicaps | TimToady: Thanks, I probably got it, not so clear. So they are different way to pass the parameters, and sometimes we can mix them | ||
TimToady | we try to use "parameters" only for the formals, and reserve "arguments" to talk about what you pass in. | 02:45 | |
sorear | So Perl 6 has a concept of an RI? | ||
Are HOW objects special? Can I write my own object which sports can, isa, does methods then start cranking out objects with HOW set to whatever I want? | 02:46 | ||
TimToady | yes, presumably | ||
so the repr type is perhaps just a key into the known metaclasses | 02:47 | ||
they're documented as types, but perhaps they're really just symbol constants | |||
and perhaps there's some underlying registration interface for repr types | 02:48 | ||
sorear | So a single metaclass instance, say Dog.HOW, can only manage a single representation type? | 02:49 | |
TimToady | the RI is something that ruoso++ and jnthn++ have been discussing off and on | ||
dunno | |||
sorear | I was under the impression that every instance of Dog could have its own repr | ||
TimToady | conceivably | ||
but that seems a bit inefficient | 02:50 | ||
but as far as P6 is concerned, yes, each object's .HOW could be independent | |||
we would certainly like to support low-level OO types such as C structs or C++ classes | 02:51 | ||
and that's all swept under the RI carpet; from the language level, it's always just $!foo | |||
it's (we hope) a level of encapsulation that is mostly hidden even to the innards of the P6 class | 02:52 | ||
sorear | Can it be said that, given $foo ~~ Dog, $foo has a known representation even if subclases are involved? | ||
Does this imply rules on metaclasses? FakeDogHOW could affirm .does(Dog), but have a different repr | 02:53 | ||
TimToady | it always seemed to me that a given subclass could delegate to a superclass object in a has-a-ish way to work around different classes having different reprs, if necessary | 02:54 | |
so in that sense a given Dog might have more than one repr | 02:55 | ||
but you'd have to ask the Mammal bits of the Dog object what it thought the .HOW was to get to it | |||
02:56
Limbic_Region left
|
|||
TimToady | and this might even be automatically delegated internally when you see that someone wants to derive something from a different repr | 02:56 | |
that's how we were, for instance, planning to handle derivation over the P5/P6 boundary | 02:57 | ||
so the P6 bits would be P6opaque, but the P5 bits would be P5hash | |||
TimToady waves hands vaguely | |||
02:58
agentzh joined
|
|||
TimToady | but we'd really like to keep all this cruft out of the definition of "normal" Perl 6, to the extent possible, which is why I think the implementors should agree on an API instead | 02:58 | |
and it becomes sort of a library problem | 02:59 | ||
I feel like the implementors will have a better idea of what's really needed there than I do. | 03:00 | ||
metamodels are not my chief interest | |||
[Coke] | (crap, I got distracted by ricardo) | ||
sorear | so in other words, I, as a wearer of the implementor hat, should make up my own decisions on this for now and try to get pmichaud and pmurias to agree | 03:01 | |
TimToady | or maybe more like ruoso and jnthn | ||
but yeah | 03:02 | ||
03:03
molaf left,
Transformer joined
|
|||
sorear | After my $x = []; Dog.bless($x); what does $x look like and what can I do with it? | 03:03 | |
TimToady | I suspect it would degrade to a model that looks a lot like P5 | 03:04 | |
sorear | but Array is a class. | 03:05 | |
TimToady | indeed | ||
but in P5 you can bless almost anything | |||
sorear | yes, because in P5 arrays aren't classes | ||
they're reprs | 03:06 | ||
03:06
meppel joined,
alester left
|
|||
TimToady | it's not something I feel strongly about trying to support in 6.0 :) | 03:06 | |
(if ever) | |||
sorear | if you took a Rakudo [] and reblessed it, you'd have a Dog with one field named $!rpa or something like that | ||
oh oka. | |||
03:06
Transformer left
|
|||
TimToady | to map the P5 notion, it seems more useful these days to mixin an array or hash role, and the stub is P6opaque with no attrs | 03:07 | |
but blessed arrays and scalars are pretty hacky and non-interoperative in P5 | 03:08 | ||
sorear | I'm thinking that reprs or RIs or whatever we want to call them, are something mostly orthogonal to the class system | 03:09 | |
TimToady | yes, in that sense class code is somewhat generic, and can be instantiated of multiple reprs | 03:10 | |
s/of/over | |||
03:10
meppl left
|
|||
TimToady | even on top of arrays, if you can map $!foo to slots | 03:10 | |
(obviously easier with SI than MI) | |||
but with an implicit delegation model for super, we could extend an array class that wasn't meant to be extended | 03:11 | ||
this is actually the sort of thing we talked about a lot in the early P6 design meetings lo these many years ago | 03:12 | ||
sorear | implicit delegation raises questions about Liskov and representation polymorphism | ||
TimToady | since the P5/P6 problem was looming large in our minds | ||
well, sure, and you'd like to be able to pass refs into P5 that can reconstitute to the original derived type if passed back to P6, which is a trick | 03:13 | ||
sorear | for the same reasons that pointer casts in C++ aren't always runtime noops | ||
TimToady | yes, the "active" spot in a list of refs, basically | ||
03:14
Transformer joined
|
|||
TimToady | P6 kinda gets this notion via $obj.SomeClass::method | 03:14 | |
where $obj knows its real type, but when we call the method we know it's on behalf of SomeClass, not the actual run-time type | 03:15 | ||
03:16
skangas left
|
|||
TimToady | but something that more permanently remembers "I'm currently pretending to be SomeClass" | 03:16 | |
03:16
Transformer left
|
|||
TimToady | as with your C++ casts | 03:17 | |
03:17
SartenX left
|
|||
TimToady | so this is something we brainstormed about, and then more or less put it on the shelf for when P5/P6 interop was being worked for real | 03:18 | |
(as it is, these days) | |||
sorear | sounds like a proxy object of some kind | 03:19 | |
TimToady | or something like typed references | 03:20 | |
sorear | ? | 03:21 | |
TimToady | or some fundmentally allomorphic object that knows how it's being used, and acts differently in different contexts, presuming there's some good way for it to know that | 03:22 | |
03:22
JimmyZ left
|
|||
TimToady | I think there's a literature on typed references, but I haven't really grovelled through it. | 03:23 | |
sorear | my dictionaries are not being helpful on "allomorphic" | 03:24 | |
TimToady | well, back in the day, the CS folks borrowed it from linguistics/mineralogy as something more general than the polymorphism of the typical class hierarchy | 03:28 | |
but perhaps the term has falled out of favor | |||
but basically an object that not only knows its type, but knows how to behave like any of several types if expected to | |||
03:28
Sarten-X joined
|
|||
TimToady | P5 scalars are somewhat that way | 03:28 | |
and unlike the normal polymorphism, the types it knows how to be are not necessary related | 03:29 | ||
diakopter | sorear: I recommend treating everything as an open class (with Hash repr) initially (since that has to be done eventually, and it's infinitely easier) | ||
sorear nods | 03:30 | ||
diakopter: ok | |||
TimToady | I've been braggin' on you guys at YAPC :) | ||
diakopter looks at sorear | |||
yesterday I almost sprung for the $500 overnight flight to Columbus but decided against it | 03:31 | ||
I probably should've planned a bit better | 03:32 | ||
sprang | 03:33 | ||
TimToady | well, I've had a long and tiring day, and didn't get my geezer nap, so I'd probably better turn in soonish... | 03:34 | |
any other questions I can evade? | |||
diakopter | sorear: if we really wanted to be good CLR citizens, we could use the DynamicObject in the DLR (that auto-extends classes ...), but more likely we'll just steal ideas from it | ||
TimToady | does that hurt interop? | 03:35 | |
diakopter | since the DLR's builtin dispatch models have nothing as horrifyingly complex as p6's | ||
it doesn't hurt interop, but using DynamicObject would help when using p6 code from an IronPyThong or IronRupee host, | 03:36 | ||
TimToady | well, it's just a different repr from P6's perspective. :) | 03:37 | |
diakopter | (using p6objects I mean, where the method & attribute names are specified in other languages) | ||
TimToady looks innocent while the implementors fall down in terror | |||
diakopter terrifically innocents the falls | 03:39 | ||
03:40
meppel left
|
|||
TimToady ~~ ('z' xx *) | 03:41 | ||
sorear | Braggin' us, eh. | 03:43 | |
04:11
tedv left
|
|||
mberends wakes up to another long $work day - teaching 12+ hours at a boot camp. Keeping up with backlogs is barely possible. Phew! | 04:36 | ||
04:37
ashleydev joined
|
|||
mberends | phenny, tell Tene http-daemon should have been fixed a few days ago, it was mainly those changed variable interpolations in HTML strings that needed to be broken up with concatenations | 04:39 | |
phenny | mberends: I'll pass that on when Tene is around. | ||
mberends | found the problems when researching for a P6 version of HTTP::Server::Simple::PSGI, which is planned to pave the way for a P6 Dancer | 04:42 | |
05:05
macdaddy left
|
|||
sorear | hello mberends | 05:10 | |
mberends | hi sorear | 05:11 | |
05:11
justatheory left,
justatheory joined
05:16
s1n left
|
|||
sorear | phenny: tell TimToady I finally understand what you were talking about re. allomorphism. It's a core concept in the CLR, although we call it "interfaces". | 05:17 | |
phenny | sorear: I'll pass that on when TimToady is around. | ||
05:25
Guest23195 joined
|
|||
sorear | If &postcicumfix:<( )> is a sub, not a method, what are the members of role Callable? | 05:27 | |
Tene | mberends: sounds like you applied the same patches I did, then. I'll look at it sometime, I guess. | 05:28 | |
phenny | Tene: 04:39Z <mberends> tell Tene http-daemon should have been fixed a few days ago, it was mainly those changed variable interpolations in HTML strings that needed to be broken up with concatenations | ||
mberends | :) | ||
05:36
orafu left
05:37
orafu joined
05:46
ashleydev left
05:54
s1n joined
|
|||
moritz_ | good morning | 05:55 | |
05:58
Mowah joined
|
|||
moritz_ | rakudo: my @a = { a=> 1}, {a => 2}; say @a».<a> | 06:01 | |
p6eval | rakudo 1277e1: OUTPUT«12» | ||
06:09
mberends left
06:14
xinming_ is now known as xinming
|
|||
sorear | hello moritz | 06:16 | |
06:20
agentzh1 joined
06:22
agentzh left
06:23
mberends joined
|
|||
sorear | Mu is a role now? :( | 06:23 | |
dalek | meta: r337 | stefa...@cox.net++ | trunk/vicil (2 files): [vicil] Commit a bunch of notes on mapping Perl 6 to the CLR |
06:24 | |
06:24
Su-Shee joined
|
|||
moritz_ | sorear: is it? | 06:29 | |
who says so? | |||
sorear | docs/Perl6/Spec/S32-setting-library/Basics.pod | 06:30 | |
06:31
foodoo joined
|
|||
pmichaud | good morning, #perl6 | 06:42 | |
moritz_ | sorear: don't believe the parts of S32 that weren't touched by Larry :-) | 06:45 | |
good morning pmichaud | |||
sorear | good morning pmichaud | 06:54 | |
What's NPQ, and will there be slides? | 06:57 | ||
pmichaud | ...NPQ? do you mean NQP? | 06:58 | |
sorear | colomon's blog references "Patrick's NPQ lecture" | ||
so I guess it was a typo | |||
pmichaud | yes, that's a typo | ||
either that or he attended a different Patrick's lecture :) | 06:59 | ||
pmichaud.com/2010/pres/yapcna-nqp # slides | 07:00 | ||
sorear | sweet | ||
pmichaud | I even tried to make a screencast of the talk, but I think my notebook failed to capture the audio. | 07:01 | |
after I get my slides ready for today's talk, I may try again on the audio | 07:02 | ||
(so that I can capture today's talk) | |||
07:07
am0c joined,
rgrau_ left
|
|||
sorear | I appreciate that | 07:10 | |
jnthn | morning, folks :-) | 07:25 | |
pmichaud | jnthn: o/ | ||
jnthn | pmichaud: ...must be early there :-) | ||
Or late. ;-) | 07:26 | ||
pmichaud | early. | ||
Need to make my slides for today's talk :-| | |||
jnthn | Ah. | ||
pmichaud | plus have an icky headache that won't go away :-| | ||
jnthn | Eww | ||
pmichaud: Nice nqp slides! :-) | 07:33 | ||
sorear | morning jnthn | 07:36 | |
pmichaud | jnthn: thanks | ||
I was quite pleased to be able to write entire compilers using only nqp (and all in one file) | |||
afk for a bit | 07:37 | ||
jnthn | pmichaud: Yes, the only hacky bit was getting the args from Parrot. | 07:39 | |
pmichaud: That's a good candidiate for an nqp:: absraction. ;-) | |||
07:42
cjk101010 joined
|
|||
cjk101010 | hi. | 07:42 | |
sorear | Hello. | ||
jnthn | Time to pay attention in $dayjob meeting again :-) | 07:43 | |
sorear | Not at YAPC? | 07:44 | |
mathw | pmichaud: very awesome slides | 07:48 | |
pmichaud | mathw: thanks | 07:51 | |
07:54
plobsing left,
Trashlord left
07:58
Trashlord joined
|
|||
mathw | pmichaud: I really should try writing a toy compiler in NQP, it looks great. Might help me understand Rakudo a bit :) | 08:01 | |
08:04
ejs joined
|
|||
moritz_ | robey.lag.net/2010/06/21/mensch-font.html looks nice | 08:04 | |
sorear | mathw: have you ever used grammar/rule/token/regex in Rakudo? | ||
Rakudo doesn't currently implement parsers itself; they're passed straight down to NQP | 08:05 | ||
(which is why our Match objects are !~~ Any) | |||
moritz_ | rakudo: say Match ~~ Any | ||
p6eval | rakudo 1277e1: OUTPUT«1» | ||
moritz_ | sorear: you're lagging several weeks behind :-) | 08:06 | |
sorear: pmichaud and I mostly fixed up match objects; if you find more nqp leakage in them, let me know | |||
mathw | sorear: yes, I have, Form.pm is built on the things (although it doesn't work with master right now) | ||
mberends <- noms an @ again :-) | |||
sorear | moritz_: oh? excellent! | 08:07 | |
moritz++ for stealth compiler improvement | 08:08 | ||
moritz_ | sorear: not so stealthy, it was both in the ChangeLog and in the last release announcement :-) | ||
08:10
rgrau joined,
ejs left
|
|||
sorear is laying the groundwork for a Perl 6 compiler in Perl 6 | 08:13 | ||
mathw | Yapsi? | 08:14 | |
sorear | No | 08:15 | |
VICIL, the next iteration of Sprixel, or maybe the one after that | |||
08:15
spinclad left,
ejs joined
08:16
jedai joined
|
|||
mathw | Whoa, C++ doesn't have &&= | 08:18 | |
never run into that before | |||
08:19
cygx joined,
jedai left
|
|||
cygx | hi | 08:19 | |
phenny | cygx: 21 Jun 22:21Z <sorear> tell cygx to check out search.cpan.org/perldoc?IO::Pty::HalfDuplex | ||
mathw | Hi cygx | 08:20 | |
08:20
synth left
|
|||
moritz_ | good morning | 08:20 | |
cygx | sorear: what I really want to know is when 'Rakudo' is blocking on input from the 'Controller' so the frontend can stop polling for updates | 08:21 | |
I don't see how this can be done without modifying 'Rakudo', or whether it's feasible at all... | |||
moritz_ | cygx: you could check for a prompt from rakudo | 08:22 | |
and fail horribly if some output contains "\n>" | |||
:-) | |||
08:23
dakkar joined
|
|||
moritz_ | it's fine to cheat for now if a "real" solution is too involved | 08:24 | |
mathw | Clearly the only route is to give PCT a generic way of handling a REPL, make Rakudo use that, then extend that generic method to present it as a web interface... | ||
cygx | well, you could use some of the nice ASCII special chars (like record separator or some such); but again, that would involve changes to the 'Rakudo' part | ||
moritz_ | cygx: it's not like changes to rakudo are impossible :-) | 08:25 | |
cygx | moritz_: there are also some design decisions about session handling to be made (more) | ||
moritz_ | cygx: we can talk with pmichaud about the problem, I'm sure he has an opinion :-) | ||
cygx | should session be (1) per client or (2) per browser-window; should sessions be resumable (as long as they are still active)? | 08:26 | |
moritz_ | how would you implement (2)? passing session identiers as GET/POST parameters? | ||
08:26
jedai joined
|
|||
cygx | yes | 08:27 | |
moritz_ | (2) would be preferrabel, if it can be implemented with reasonable effort | ||
cygx | that should be possible | ||
moritz_ | what do you mean with resumable? that if one closes a browser window, and opens it again, you get the same session? | 08:28 | |
cygx | if you use the URL query tring for the session id, you can close the browser window and later call the same address | ||
*string | |||
moritz_ | well | 08:29 | |
what I don't like is that if you share your current URL, you share your session | |||
which can lead to weird action-at-a-distance | |||
there are two possible solutions | |||
1) never make the session id user visible (ie only use ajax calls, never redirect to a different URL) | 08:30 | ||
or 2) make sessions per-client (1) | |||
both work for me | |||
cygx | it's also possible to make it work completely without client-side scripting if you cache all output during the lifetime of a session and expose the session-id to the user | 08:32 | |
moritz_ | not sure if it's worth the trouble | 08:33 | |
usually I'm all for websites that work without js | |||
sorear | cygx: you really ought to read my tells | 08:34 | |
I gave you a solution | |||
moritz_ | but if it's intrinsically interactive, you simply can't expect good user interaction without JS | ||
sorear | an unbreakable, if slightly unportable, solution | ||
moritz_ | so I'd be fine with having it work only with js | ||
08:35
jedai left,
jedai joined
|
|||
sorear | also, I spent quite a bit of time on IO::Pty::HalfDuplex and I'd like to see it used for something other than nethack | 08:35 | |
moritz_ | if it works on debian, that's fine | 08:36 | |
the server environment doesn't need to be all that portable | |||
sorear | developed on debian | 08:37 | |
cygx | sorear: so recv() does exactly wht I want? I saw the tell, but didn't realise it's what I looked for | ||
sorear | cygx: yes. doesn't return until the child process blocks on STDIN | 08:38 | |
actually read, not recv | |||
cygx | would this mean that partial output can't be streamed to the client? fine with me, but what do others think? | 08:40 | |
moritz_ | works for me | ||
sorear | partial output can be streamed, but you'll want to set a specific latency | 08:41 | |
or timeout | |||
moritz_ | we want something running first; it can later be refined if it turns out that's needed | ||
jnthn | Somebody *will* try for 1..* { .say } :-) | ||
sorear | although if you just want to stream, you don't really need to find out if output has ended, do you? | ||
moritz_ | jnthn: somebody *will* get a timeout | ||
08:42
wolverian joined
|
|||
jnthn | ;-) | 08:42 | |
Will the Rakudo instance also get killed? | 08:43 | ||
sorear | I think that's spelled SIGXCPU anyway. | ||
jnthn | After a while? | ||
moritz_ | yes | ||
cygx | sorear: the client has to poll for output (AJAX long polling - not the best solution - chunked XHR would be superior, but only works in FF) | ||
it's just a difference between how many calls have to be made | |||
sorear | cygx: ah. ok. | 08:44 | |
hrm. maybe I should push out 0.03 with the ability to return partial output? | |||
cygx | it would be nice from a UI standpoint, but complicates the implementation | 08:46 | |
sorear | you wouldn't have to use it immediately | 08:48 | |
08:55
clintongormley joined
08:58
thebird joined
09:01
yahooooo left
|
|||
pmichaud wonders if we should trap "for 1..* { .say }" into responding with "Sorry, Dave, I cannot do that." | 09:08 | ||
arnsholt | I think the best solution is to resource limit the Rakudo processes and have some kind of timeout | 09:10 | |
moritz_ | uhm, why? | ||
arnsholt | Can't solve the halting problem anyways =) | ||
moritz_ | (to pmichaud) | ||
pmichaud: we can try, just not finish | |||
rakudo: for 1..* {.say} | 09:11 | ||
pmichaud forgot to put the smiley at the end. | |||
moritz_ | ok :-) | ||
arnsholt | Oh, right ^^ | ||
p6eval | rakudo 1277e1: | ||
..OUTPUT«1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | |||
sorear | Why are calls and returns so different in Perl 6? | 09:15 | |
moritz_ | are they? | 09:16 | |
return $capture is really a call | |||
sorear | Calls take a Capture | ||
Returns take anything | |||
Calls bind to a signature | |||
Returns don't | |||
pmichaud | (yes they do) | 09:17 | |
my (Int $a, Str $b) := foo(); | |||
that's a signature bind | |||
Returns also take a capture | |||
sorear | always? | ||
pmichaud | at least conceptually, yes. | 09:18 | |
sorear | returns are more flexible than calls | ||
09:18
masak joined
|
|||
sorear | oh | 09:18 | |
so, my $a = foo(); $a.WHAT # Why no Capture? | |||
pmichaud | implementations are free to cheat a bit, but conceptually the arguments to a return are treated as a capture | ||
moritz_ | sorear: captures of one argument are allowed to degrade into its argument, iirc | 09:19 | |
jnthn | pmichaud: returns take a Parcel. | ||
pmichaud | jnthn: yes, that's more accurate. | ||
moritz_ | and captures in general degrate into parcels, iirc | ||
pmichaud | but calls take a Parcel too. | ||
jnthn | pmichaud: And important difference. | ||
If you retnrn :a<foo> it's a positional. | |||
moritz_ | is that spec? | 09:20 | |
jnthn | (though if you do my (blah signaure) := foo(); | ||
Then it's coerced into a Parcel | |||
moritz_: Yes | |||
sorear | *coerced into a Capture | ||
jnthn | sorear: yes | ||
:-) | |||
jnthn back to dayjob :-) | |||
pmichaud | the point being that returns are much closer to calls than they are different. | ||
jnthn | pmichaud: Yes :-) | ||
And conceptually a call is a Parcel coerced to a capture. | |||
pmichaud | in the case of my $a = foo(); it's the = that causes its rhs to be acted upon as a Parcel | 09:21 | |
jnthn | So I guess it is symmetic after all. | ||
sorear | Next question: Are Parcels representationally monomorphic, or is user code allowed to make fake parcels? | ||
pmichaud | i.e,. one has to use a special syntax to get at the underlying capture | ||
(just as one has to use special syntax in a signature to get at the underlying capture in a call) | |||
I'm not sure I understand "fake parcels" | 09:22 | ||
moritz_ | user-defined Parcel types | ||
pmichaud | I don't know. | ||
haven't explored that part yet. | |||
sorear | pmichaud: objects which answer true to .HOW.isa($_, Parcel) | ||
(and they don't necessarily inherit from Parcel...) | 09:23 | ||
09:23
ab5tract left
|
|||
sorear | s/isa/does/ | 09:23 | |
pmichaud | I don't see anything that would specifically prevent that atm. | ||
09:23
ab5tract joined
|
|||
pmichaud | as long as those objects know how to respond to .Capture, seems like it could work. | 09:23 | |
masak | oh hai, #perl6 | 09:25 | |
moritz_ | lolitsmasak | ||
masak | pmichaud: fancy seeing you here at this time of day :) | ||
pmichaud | masak: o/ | ||
masak: yes, I'm trying to get my slides ready for today's talk. | 09:26 | ||
masak | procrastinating++ | ||
pmichaud | (7.5 hrs from now) | ||
I really wish I could say it was due to procrastination. | |||
This time, I'm innocent of that charge. | |||
masak | I see. | ||
pmichaud | We had another medical emergency on Friday (and no, it was not my wife this time) | 09:27 | |
and so the time I had set aside to work on slides was spent in a hospital again. | |||
(and yes, all appears to be well now, but that wasn't clear until Sunday morning.) | 09:28 | ||
anyway, I'm writing slides now. :-) | |||
masak | don't let me detain you :) | 09:29 | |
pmichaud | Fortunately(?), I have *tons* of experience in creating presentations only hours before they're needed. | ||
:-) | |||
arnsholt | I don't think it's possible to graduate from a university without learning that =) | ||
moritz_ | it is, in fact | 09:30 | |
my studies only involved 3 mandatory presentations, all of which were well scheduled in advance :-) | |||
arnsholt | Heh. That means you're a better person than me, moritz_ =) | ||
Well, I haven't done many presentations either, but term papers, exams and so on... | 09:31 | ||
moritz_ | not quite. Only that my fear of failure drives me to write the slides earlier than you | ||
arnsholt | Or that | 09:32 | |
Either way, I have way too much experience doing preparations too late | 09:33 | ||
moritz_ | Q: how do you know you spend too much time on Perl 6? A: When you write \capture instead of \caption to set titles for your figures in latex | ||
09:35
diffly joined,
diffly left
|
|||
masak | mathw: Java doesn't have &&= either. | 09:37 | |
jnthn | What does Java have? | ||
masak | a = a && b, I guess. | ||
jnthn | masak: heh. I was being snarky. :-) | 09:38 | |
masak | jnthn: yes, I guessed that. :) | ||
jnthn | :P | ||
09:38
yinyin left
|
|||
masak | I just have this habit of answering joke questions seriously... :) | 09:38 | |
jnthn | masak: I'm escaping to the UK tomorrow and amd gutted that I'm missing out on sill. ;-) | ||
*am | |||
cygx | client-server-communication design proposal for try.rakudo.org: nopaste.snit.ch/21462 | ||
masak | jnthn: no, you're not. :) | 09:39 | |
jnthn | :) | ||
moritz_ reads | |||
jnthn | masak: I will take some JungleRoar to feed to my family though ;-) | ||
masak | cygx++ | ||
jnthn: excellent. | |||
cygx: I prefer 'cookie' to 'session-id' in address, if only because it looks nicer. | 09:40 | ||
moritz_ | agreed | ||
cygx: minor details: I'd like the server not to send a Refresh-header if JS is available | 09:41 | ||
cygx: so that the 204 No Content responses become unnecessary | |||
there can be an additional flag, like &js=1 or so | 09:42 | ||
set by the javascript code, if exists | |||
09:42
cls_bsd left
|
|||
cygx | moritz_: my example frontend actually already doeas this | 09:43 | |
moritz_ | great | ||
sorear -> sleep | |||
moritz_ | cygx: please also put these notes into the repo | 09:45 | |
dalek | meta: r338 | stefa...@cox.net++ | trunk/vicil/ (6 files): [vicil] Very start of prototyping for compiler framework |
09:46 | |
cygx | moritz_: the idea behind using a 204 response is so that the same mechanism can be used in the scripting and no-scripting cases (just a plain html form submit); also, it decouples sending a request from waiting for an answer to account for the cost of the frontend-controller-rakudo roundtrip and allow the script to produce all its output | 09:47 | |
moritz_ | cygx: makes sense. If you prefer that way, I'm fine with it | 09:50 | |
cygx | moritz_: also, I think the session-id need not be user-exposed even if we don't use cookies; the only problem I see is a manual reload: if the user hits F5, a new session would be generated... | 09:52 | |
dalek | ok: c7b73a0 | (Hongwen Qiu)++ | src/classes-and-objects.pod: [classes-and-objects.pod] fix the answer for exercise 3. |
||
moritz_ | cygx: unless we use a hidden form for the session id, and the browser preserves the value in that form | 09:54 | |
I can't help but thinking "I'm sure in HTML5 this would all be much simpler" | 09:55 | ||
cygx | ;) | 09:56 | |
moritz_ | but maybe it isn't | ||
and I really don't know any html5, so I can't tell | |||
avar | the indenting for the last book commit looks broken | 09:57 | |
moritz_ | right | 09:58 | |
avar: want to fix it? | |||
hugme: add avar to book | |||
hugme hugs avar. Welcome to book! | |||
avar | nah, doing $otherstuff, but thanks | 09:59 | |
moritz_ | ok, I'll do it then | ||
10:01
ejs left
|
|||
cygx | moritz_: using visible session-ids would make it possible to pass links to them around: Bob has a problem, sends his session address to #perl6 and Alice can see excactly what Bob did and even show him how it's done correctly | 10:01 | |
moritz_ | cygx: but it's very confusing as a default | 10:02 | |
cygx: I'd rather have it hidden, and have a "share this session" link | |||
*hidden by default, that is | |||
10:03
lestrrat is now known as lest_away,
JimmyZ joined
|
|||
JimmyZ | hello masak | 10:03 | |
masak: see gist.github.com/447846 | 10:04 | ||
dalek | ok: 1d1c812 | moritz++ | src/classes-and-objects.pod: fix indenting from last commit |
||
moritz_ | JimmyZ: seems like a byte order mark accidentally inserted in a core file | 10:05 | |
10:06
ejs joined
|
|||
JimmyZ | moritz_: maybe, I can't see it. | 10:07 | |
moritz_ | JimmyZ: hexdump will tell you. git diff will also show that something's changed, even it doesn't show what's different | 10:08 | |
cygx | moritz_: anyway, the first decision which should be made is to allow multiple sessions per client; if we don't, we can use cookies and the problem goes away; if we do, afaik it's either using a user-exposed session-id or breaking manual page-refresh | ||
moritz_ | cygx: then I'm in favor of one session per user. But whoever implements it has the final say :-) | 10:09 | |
cygx | moritz_: ok; I'll write that up and add it to the repository later today | 10:11 | |
I'm off for now... | |||
moritz_ | cygx++ # lots of work so far | 10:12 | |
cygx: thanks, and have fun | |||
10:12
cygx left
|
|||
JimmyZ | moritz_: yes, removed the line and re-add it, compiles now | 10:14 | |
moritz_ | JimmyZ: I'd also recommend to use an editor that you can configure not to add BOMs to UTF-8 files | 10:15 | |
10:16
masak` joined
|
|||
moritz_ | it doesn't make much sense | 10:16 | |
JimmyZ | moritz_: I didn't edit the file, I just git pull it from github | ||
10:16
masak left
|
|||
moritz_ | JimmyZ: from the rakudo repository? | 10:17 | |
JimmyZ | yes | ||
moritz_ | JimmyZ: I know a patch of yours once introced a BOM, but I didn't merge that part | 10:18 | |
that's curious | |||
arnsholt is not on the best of terms (pun not intended =) with NQP's LTM | |||
JimmyZ | moritz_: let me check again. | 10:24 | |
10:25
ejs left
10:26
ejs joined
10:27
aCiD2 joined
10:30
rv2733 joined
|
|||
colomon is now trying to figure out what NPQ could stand for... | 10:38 | ||
"new perl quines" | 10:39 | ||
"nano porcupine quills" | 10:41 | ||
literal | next question please | 10:42 | |
colomon | literal: that's NQP | 10:43 | |
literal | oh, right | ||
www.urbandictionary.com/define.php?term=npq | |||
colomon | oh, nice! ;) | 10:44 | |
10:47
lest_away is now known as lestrrat
10:55
JimmyZ left
11:04
masak` is now known as masak
11:06
agentzh1 left
|
|||
masak | another perl6 logo proposal: intertivity.com/share/camelia_esskar_perl6.png | 11:10 | |
11:15
christine left,
christine joined
11:20
Zapelius joined
|
|||
_sri | masak: i don't think it's meant as a proposal, it's a stock icon | 11:21 | |
masak | aye, might be. | ||
_sri: both that one and yours, but I wouldn't say that they have as much "personality" as Camelia. | 11:22 | ||
phenny: tell JimmyZ if moritz_ is right, and I think he is, a BOM must've snuck into your src/core/metaops.pm -- maybe you've edited that file? | 11:23 | ||
phenny | masak: I'll pass that on when JimmyZ is around. | ||
jnthn | I hate it when a text editor sets up me the BOM. | ||
Notepad on Windows does that. :-| | |||
masak | jnthn: that never happens to me. guess all the editors I use are... insufficiently insane. | 11:24 | |
_sri | masak: "both that one and yours, but..." what did you mean? | 11:27 | |
masak | um. meant to say "I like the look of both that one and yours". | ||
_sri | ah | ||
masak sometimes wishes he drank coffee | |||
_sri | well, now at least i have something to point at when people say i don't do enough for perl marketing ;p | 11:28 | |
masak | :) | 11:29 | |
moritz_ | rakudo: say (* + 1).signature.perl | 11:41 | |
p6eval | rakudo 1277e1: OUTPUT«:(;; Mu $x)» | ||
moritz_ | rakudo: say (* + 1).WHAT | ||
p6eval | rakudo 1277e1: OUTPUT«WhateverCode()» | ||
moritz_ | rakudo: say (*.foo).WHAT | ||
p6eval | rakudo 1277e1: OUTPUT«WhateverCode()» | ||
moritz_ | rakudo: say (*.foo).signature.perl | ||
p6eval | rakudo 1277e1: OUTPUT«:(;; Mu $x)» | ||
masak | std: :(;;) | 11:43 | |
p6eval | std 31405: OUTPUT«===SORRY!===Malformed parameter at /tmp/bs1NpCYdFo line 1:------> :(⏏;;) expecting any of: name parameter signature statement end statement listParse failedFAILED 00:01 111m» | ||
masak | std: :($x ;;) | ||
p6eval | std 31405: OUTPUT«ok 00:01 109m» | ||
masak | std: :(;; $x) | ||
p6eval | std 31405: OUTPUT«===SORRY!===Malformed parameter at /tmp/nAPAJQLPjT line 1:------> :(⏏;; $x) expecting any of: name parameter signature statement end statement listParse failedFAILED 00:01 108m» | ||
masak submits rakudobug | 11:44 | ||
.signature.perl sometimes returns unevaluable signatures | |||
kthakore | ?? | ||
11:44
knewt2 left
|
|||
masak | kthakore: ¿¿ | 11:45 | |
kthakore | masak: are you haxing the NETz. OMG you are so leet! | ||
masak | kthakore: I'm only leet on Thursday mornings. today I'm simply hawt. | ||
moritz_ | std: sub f(;; Mu $x) { } | 11:46 | |
p6eval | std 31405: OUTPUT«===SORRY!===Malformed parameter at /tmp/KZbMW7qeRJ line 1:------> sub f(⏏;; Mu $x) { } expecting any of: name new name to be defined parameter routine_def signatureParse failedFAILED 00:01 108m» | ||
moritz_ | masak: it's a stdbug | ||
masak | oh. | ||
11:46
knewt2 joined
|
|||
moritz_ | masak: the ;; means "not included in MMD" | 11:46 | |
kthakore | hah ok | ||
moritz_ | and last I looked it was in S06 | ||
kthakore | masak: I will have more to show when I get rakudo finaly compiled | ||
moritz_ | kthakore: are you on windows? | 11:47 | |
kthakore | moritz_: no linux | ||
masak | moritz_: you're right. for some reason I didn't think ;; was allowed in the beginning. | ||
but it must be. | |||
kthakore | moritz_: it is super slow compile on grammar | ||
masak | TimToady: STDbug above. | ||
kthakore | src/Perl6/Grammar.pm | ||
masak | kthakore: how much RAM do you have? | ||
kthakore | that takes for ever to compile | ||
masak: 2gb | 11:48 | ||
masak | should be enough. | ||
moritz_ | then it should be no problem | ||
kthakore | bah I will wait more | ||
moritz_ | kthakore: do you use a sufficiently recent parrot and rakudo? | ||
kthakore | it ctrl-z it last night | ||
moritz_: trunk and trunk | |||
moritz_ | huh. | ||
kthakore: do you compile parrot with --optimize? | |||
kthakore | oops no | 11:49 | |
moritz_ | last time I checked the difference wasn't huge, about 20% | 11:50 | |
but it might have changed since then | |||
kthakore | moritz_: ok I will optimize and try aggain | ||
gotta get to work | |||
jnthn | masak: The ;; at the start is fine | ||
kthakore | cya | ||
jnthn | masak: Though could be tweaked by marking the parameters as mmd-able. | ||
But makes no difference for non-routines really. | 11:51 | ||
But I won't object if you patch it. | |||
masak | jnthn: :) | ||
moritz_ | in case somebody does &multi.push(*.sort) or so | ||
jnthn | moritz_: eww | ||
kthakore | moritz_: correct? -> perl ./Configure.pl --optimize | ||
jnthn | moritz_: good point | ||
moritz_ | kthakore: in parrot, yes | ||
jnthn | Yeah, let's fix it. | ||
kthakore | ok | ||
thanks | |||
moritz_ | kthakore: takes about 3 minutes to compile rakudo on an optimized parrot here | ||
parallel make, with two processes | 11:52 | ||
user 3m28.903s | |||
so should still be <4min with a single core | |||
takadonet | morning all | 11:54 | |
11:55
colomon left
|
|||
masak | \o | 12:00 | |
eiro | o/ | ||
12:01
synth joined
12:10
envi^home joined
12:20
redicaps left
|
|||
mathw | masak: Java has PAIN and SUFFERING | 12:21 | |
masak | mathw: still loads better than C++, as I understand it. | 12:22 | |
mathw | hahahahahahahaha | ||
no | |||
I refuse to accept any language which can't make user-defined types integrate neatly into the existing environment | 12:23 | ||
masak | that gets rid of everything except for Lisp, then. :) | ||
and Smalltalk. | |||
perhaps Forth gets to be in that exclusive club too. | 12:24 | ||
moritz_ | forth has user defined types? | ||
masak | not sure it has types at all. | 12:25 | |
but when you define something new, it blends in :P | |||
mathw | Forth just has words | ||
C++ types *almost* integrate properly | 12:26 | ||
C++1x improves that situation rather muchly | |||
but Java just doesn't bother at all | |||
masak | oh, it's 1x now? | ||
moritz_ | masak: just like QBasic. The (empty) set of user-defined types blends in perfectly | ||
mathw | well it didn't come out before 2010 | ||
so yes, it's 1x now :) | |||
current roadmap looks like end of 2011 for final publication by ISO | |||
12:26
bphillips joined
|
|||
mathw | I'm not holding my breath | 12:26 | |
masak | moritz_: would be quite fun to find the sources for QBasic, and extend it with classes. | 12:27 | |
moritz_ | holding your breath for > 1 year would be harmful :-) | ||
masak: I don't believe so :-) | |||
masak | CLASS Complex; HAS .X; HAS .Y; ENDCLASS | 12:28 | |
hm, bad attr naming... | |||
moritz_ | it's stunning how similar that looks to LOLCODE, at first sight :-) | 12:29 | |
and just because of the ALL CAPS and HAZ, erm HAS | |||
masak | LOLCODE also desperately needs classes. | ||
mathw | LOLCODE is rather inspired by the syntax of BASIC I think | 12:30 | |
masak: well then implement some :) | |||
masak | :) | ||
might be a fun weekend hack some time. | |||
moritz_ | OH HAI I ARE TYPE Complex; I HAZ RE; I HAZ IM; CIAOU | ||
mathw | but you have to get the terminology right | 12:31 | |
arnsholt | I'd drop TYPE, just "OH HAI I R Complex" | ||
moritz_ | probably | ||
masak | IM IN UR Complex | 12:32 | |
it could be an excellent opportunity to explain the "finer points" of OO. | |||
moritz_ | and finish with IM OUTTA HER | ||
mathw | HOW TO MAEK Complex: U GIVS ME re N im. | 12:33 | |
moritz_ | did you mean HOW IS Complex MAKED? | 12:34 | |
:-) | |||
mathw | something like that | 12:35 | |
bbkr | rakudo: say ++"1"; # should this be parsed as +(+"1") insetad of as prefix<++>: ? | ||
p6eval | rakudo 1277e1: OUTPUT«Cannot assign to readonly value in '&infix:<=>' at line 1 in main program body at line 11:/tmp/csL1bwhZz5» | ||
slavik | I maked you a complex, but I eated it | ||
moritz_ | bbkr: nope. Parsing is independent of types | ||
mathw | slavik: isn't that an abstract class? :) | 12:37 | |
slavik | not a clue | ||
I wonder if that could be the java's equivalent of an OOM on allocation | |||
or something | |||
bbkr | rakudo: my $i = 0; say ++$i; # then this one should return 1, isnt it? | ||
p6eval | rakudo 1277e1: OUTPUT«1» | ||
moritz_ | yes, and it does. | 12:38 | |
bbkr | moritz_: thanks, it's clear now that double num context forcing has to be in brackets. | 12:39 | |
moritz_ | what does double numeric context give you that single numeric context doesn't? :-) | 12:40 | |
12:40
masonkramer left,
masonkramer_ joined
|
|||
bbkr | nothing, i'm just testing rakudo with weird usage :) | 12:41 | |
rakudo: say Q{}.WHAT; # this one is surprising... | |||
p6eval | rakudo 1277e1: OUTPUT«Str()» | ||
moritz_ | why? | ||
bbkr | rakudo: say X{}.WHAT; | 12:42 | |
p6eval | rakudo 1277e1: OUTPUT«Could not find sub &X in main program body at line 11:/tmp/Z9TJZ8oVTa» | ||
moritz_ | Q is an ordinary string quote | ||
like qq and qw and qx etc. | |||
(at least it's not surprising if you've read S02 :-) | |||
bbkr | indeed "In addition to q and qq, there is now the base form Q" :) thanks! | 12:43 | |
rakudo: say "Q{1}"; # something is messy with Q interpolation? One may expect "Q{1}" (not interpolated) or "1" (interpolated), this output is some hybrid of "Q" and interpolated block {}. | 12:49 | ||
p6eval | rakudo 1277e1: OUTPUT«Q1» | ||
moritz_ | that's expected | 12:50 | |
the Q is just part of the string | |||
like in | |||
rakudo: say "1 + 2 = { 1 + 2 }" | |||
p6eval | rakudo 1277e1: OUTPUT«1 + 2 = 3» | ||
moritz_ | would you expect that to only print 3? | ||
mathw | compare to | ||
rakudo: say Q{1}; | |||
p6eval | rakudo 1277e1: OUTPUT«1» | ||
bbkr | thanks. your explanation is instant as always and makes perfect sense :) | 12:52 | |
moritz_ | :-) | 12:54 | |
12:55
cognominal left
|
|||
slavik | I don't get it ... why doesn't the 'Q' get printed? | 12:55 | |
takadonet wonders if moritz_ and masak are perl 6 bot from the future. Send back to help us complete Perl 6 sooner | |||
12:56
cognominal joined,
colomon joined
|
|||
PerlJam | greetings #perl6 | 12:56 | |
colomon | o/ | ||
greetings from YAPC::NA | |||
PerlJam | colomon: did you finally meet pmichaud? :) | ||
moritz_ | takadonet: I will never tell you | ||
pmichaud | PerlJam: he's sitting next to me | ||
moritz_ | takadonet: erm, I never told you | ||
colomon | :) | 12:57 | |
masak | takadonet: if time travel existed, US Patent 1 would be the time machine. | ||
moritz_ | damn, time is so confusing when you have loops in there | ||
slavik | masak: agreed | ||
PerlJam | masak: If you invented a time machine, why would you *care* about US patents? :) | ||
moritz_ | because patent 1 would be such a cool thing | ||
masak | PerlJam: because of future and past competitors, duh :) | ||
slavik | my Perl prof in college had a theory, that if you invent a time machine, you technically don't have to do anything, because you would already have it since you would give it to yourself. | 12:58 | |
so the fact that I don't have a time machine, I have not invented it. :( | |||
moritz_ | it's a classical bootstrapping problem | ||
masak | slavik: there's an Animaniacs episode about that kind of thinking. | ||
PerlJam | masak: and because the US is the best of nations from now until the end of time? :) | ||
dalek | ok: 87323a0 | (Hongwen Qiu)++ | src/regexes.pod: [regexes.pod] fix typo |
12:59 | |
masak | PerlJam: speaking of that, how're we doing on the Decline and Fall of Western Civilization? | ||
slavik | animaniacs is an awesome cartoon, do they still run it? | ||
PerlJam | masak: we're half way there! | ||
masak | PerlJam: excellent. | ||
kolibrie | I'm giving a talk tomorrow about viv (and mentioning gimme5 and its history), and would like to focus in on cool Perl 5 things either in viv or Cursor.pm code, or cool things in the Perl 5 code it generates (such as STD.pmc) | ||
So if anyone has any cool things they would like to bring to my attention, I would love to hear about them in the next 24 hours or so | 13:00 | ||
PerlJam | kolibrie: The coolest perl 5 thing is that it's running Perl 6 ;) | ||
kolibrie | yes, that is true (any why I thought of doing the talk in the first place) | ||
slavik | I wonder, is there a page that shows how much of spec tests various perl6 implementations pass? | 13:01 | |
mayb even a list of spec tests? | |||
moritz_ | slavik: I don't know such a page | ||
slavik | I think it would be useful ... | 13:02 | |
for me at least :P | |||
moritz_ | then create one | ||
then use it | |||
colomon | Do any of the non-Rakudo implementations pass significant quantities of spectests? | ||
moritz_ | colomon: pugs did, and I guess till does | ||
slavik | and then there can be an rss feed ... so we'd be like "yay!" when a new spec test is passed | ||
bbkr | slavik: you can always run testsuite yourself and parse output. | ||
moritz_ | also elf wasn't too bad | ||
colomon | The spec is changing faster than those implementations are. | ||
moritz_ | right, neither pugs nor elf is updated anymore | 13:03 | |
which is a real pity | |||
I think mildew supports lots of features, but offers little usability, and little test counts | |||
slavik | so rakudo is where the focus is? | ||
rakudo say 2**64 | |||
rakudo: say 2**64 | 13:04 | ||
p6eval | rakudo 1277e1: OUTPUT«1.84467440737096e+19» | ||
slavik | :( | ||
colomon | slavik: there are people working on other new implementations, but they are still pretty immature. | ||
moritz_ | the people? *SCNR* :-) | ||
colomon | moritz_: no comment. ;) | 13:05 | |
13:05
LionMadeOfLions left
13:06
LionMadeOfLions joined
|
|||
PerlJam | Perl 6 is just waiting for a critical mass of implementations before it bursts onto the scene and takes the programming world by storm | 13:07 | |
pugssvn | r31406 | masak++ | [t/spec/S32-str/encode.t] two new tests | ||
r31406 | | |||
r31406 | Testing postcircumfix:<[ ]> on Buf. Skipped for now. | |||
13:08
ejs left
|
|||
pugssvn | r31407 | masak++ | [t/spec/S32-str/encode.t] added another test | 13:10 | |
r31407 | | |||
r31407 | Testing that Buf ~~ Positional. | |||
mathw | PerlJam: well those implementations also have to be in suitable states | ||
kthakore | PerlJam: well I am going to be trying parrotSDL from Perl6 soon :) | ||
13:11
spinclad joined
|
|||
kthakore | PerlJam: is that part of the strom? | 13:11 | |
bbkr | Rakudo is so far the best spec compatible, most stable and fastest of all P6 releases out there (and with cleanest code). So it has big chances to become "primary" P6 implementation. | ||
PerlJam | bbkr: fastest? | ||
are you sure? | |||
bbkr | comparing to pugs? sure | ||
masak | bbkr: Yapsi is more stable than Rakudo. | 13:12 | |
bbkr | how many spectests does Yapsi passes? | ||
mathw | masak: but Yapsi needs Rakudo to run... | ||
masak | bbkr: also, Yapsi is official; Rakudo isn't. | ||
mathw: your point being...? :) | 13:13 | ||
mathw | And I thought there was no such thing as official | ||
masak | bbkr: none so far. | ||
mathw | it's Perl 6 if it passes the spectests | ||
PerlJam | mathw: didn't you see the announcement? It said "official". I saw it. | ||
masak | I'd imagine Yapsi will start passing spectests this autumn. | ||
13:14
bluescreen joined,
bluescreen is now known as Guest17144
|
|||
aCiD2 | why are there so many implementations of the spec? | 13:15 | |
PerlJam | aCiD2: variety is the spice of life. | ||
moritz_ | aCiD2: because various people started various compilers | ||
masak | aCiD2: different aspects being explored at the same time. | ||
aCiD2 | it's also a nice way to slow down getting a perl6 that people can use out the door :) | ||
mathw | no, not really | ||
PerlJam | aCiD2: prove it | ||
aCiD2 | i guess, I can't see why you can't explore different aspects in the same codebase | ||
moritz_ | that's rather simple to answer | 13:16 | |
Perl 6 is a very complex language | |||
masak | aCiD2: you'll see it soon enough :) | ||
moritz_ | so every compiler starts out as a simplification | ||
and most simplifications not easily generalized in all dimensions | |||
mathw | Another reason is that nobody was really sure how to implement Perl 6 in the best way. That question still hasn't been answered. | 13:17 | |
Another reason is that multiple implementations can be very useful. | |||
PerlJam | moritz_: so, pugs simplified on syntox, smop simplified on oop, and rakudo simplified on grammars (so to speak) | ||
er, s/syntox/syntax/ | |||
slavik | pugs for math based perl | ||
pmichaud | slide preview for today's talk: pmichaud.com/2010/pres/yapcna-rakudo/ | ||
slavik | it would be awesome if different perl6 implementations could talk to each other | 13:18 | |
pmichaud | comments/suggestions welcomed | ||
moritz_ | PerlJam: just the other way round. s/implified on/explored/g | ||
slavik: how would that look like? | |||
pmichaud | especially things I forgot but should mention or mentioned but should have forgotten :) | ||
PerlJam | moritz_: yeah, I guess I was meaning "simplified from the the direction of" | 13:19 | |
pmichaud: I like that "R* is not" slide :) | |||
13:19
Guest17144 left
|
|||
pmichaud | PerlJam: yes, I liked the way it came out also. | 13:20 | |
masak | pmichaud++ # seen first 10 slides so far, looks really good | ||
slavik | moritz_: I am not sure ... | ||
13:20
cls_bsd joined
|
|||
slavik | moritz_: maybe some java style messaging or something? | 13:20 | |
moritz_: that is where it would make sense | |||
masak | *lol* at "Where is the official Perl 6..." "No." | 13:21 | |
slavik | moritz_: think of it as running module on other implementations | ||
Su-Shee | pmichaud: I buy the rakudo adventure edition! | ||
slavik | as in math.pm can be run on pugs and myprogram.p6 can be run on rakudo and make calls to math.pm running on pugs | ||
bbkr 's recipe for good presentation is to use Steeve Jobs quotes ("amazing", "fascinating", "great"...) mixed with Java naming ("enterprise", "business solution"...) :P | |||
slavik | or something | ||
mathw | pmichaud: good slides, so backtracking in regexes is fairly easy is it? Good :D | 13:23 | |
pmichaud | mathw: well, easy-ish for me, since I know how I intended the design to ultimately work | ||
slavik | what city is PDX? | ||
pmichaud | the main reason it doesn't exist has been lack of tuits | ||
slavik: Portland, OR | 13:24 | ||
mathw | pmichaud: I just really want to be able to get Form to work nicely without having to rewrite it to not backtrack | ||
PerlJam | slide #42 pmichaud++ | ||
slavik | I see | ||
mathw | which I know is enormously selfish of me, but... :) | ||
moritz_ | laziness++ | ||
pmichaud | delegation++ | ||
Su-Shee | PerlJam: I'm just laughing at "The one module you can't believe we don't have yet" :)) | 13:25 | |
PerlJam | Su-Shee: yep :) | ||
mathw | I don't know what that module is | ||
I can think of a few... | |||
moritz_ | pmichaud++ # awesome slides. I wish I could be there, and watch the responses from teh audience | 13:26 | |
Su-Shee | pmichaud: maybe you could emphazise a little that you plainly don't need a "complete" distribution/release for many modules-to-be-written. | ||
PerlJam | pmichaud: you just *know* that even after all the care you've taken in slide #12, that the first question you're going to get at the end of the presentation is "So when will the official Perl 6 release be?" | ||
(or some variant thereof) | |||
pmichaud | PerlJam: "No." | 13:27 | |
jnthn back from meetings :-) | |||
moritz_ | that's a good response :-) | ||
masak | pmichaud: I'm very happy about that presentation. | ||
pmichaud | I thought about saying "Mu" as the response, but "No." is more direct. :) | ||
mathw | I think you do just have to keep beating people over the head with it | ||
13:27
gbacon joined
|
|||
mathw | o/ jnthn | 13:27 | |
Su-Shee | pmichaud: I _just_ wanted to suggest Mu. :) | ||
masak | "No." is preferrable, I think. | 13:28 | |
even though "Mu." is more fitting in some senses. | |||
pmichaud | Su-Shee: I'm trying to figure out how/where I'll emphasize that incomplete distributions are often 'good enough'; thanks for the suggestion. | ||
Su-Shee | or we invent a koan appropriate. "it's not the release you're waiting for, it's the waiting which will release you" or something. ;) | ||
moritz_ | rakudo: say "2010-06-30" ~~ Mu | ||
p6eval | rakudo 1277e1: OUTPUT«1» | 13:29 | |
PerlJam | heh | ||
Su-Shee | pmichaud: I've realized it while doing some DBI stuff.. essentially it's really just a little if else, push, an object here and there and suddenly, there's a "feature". | ||
PerlJam | Su-Shee: I think more of "stop waiting!" respsonse might be better. | ||
colomon doesn't want to see the slides before the presentation. :) | 13:30 | ||
masak | "If someone told you Perl 6 was released already, would you start using it?" "Yes." "Perl 6 is released already." | ||
PerlJam | masak++ | ||
moritz_ | Su-Shee: that's how development really works. It's the same for CGI scripts, modules and compilers | ||
PerlJam | btw, I looked at Math::Model for the first time last night. Quite cool. | ||
moritz_ | PerlJam: thanks | ||
pmichaud | ah, found it. | 13:31 | |
PerlJam | And a perfect example of why you shouldn't wait | ||
moritz_ | the codebase still feels a bit clumsy in some spots | ||
PerlJam | clumsy but *useful* | ||
moritz_ | I thought I understood how it's supposed to work, modeled two examples, found out it was all wrong... | ||
Su-Shee | moritz_: my point is that I didn't even miss "more" stuff. that I can't do certain things on those non-native arrays isn't rakudo's fault. (I assume. ;) | ||
jnthn | pmichaud: "Object metamodel in Perl 6" | 13:32 | |
pmichaud: ENOTYET :-( | |||
PerlJam | "Hmm. I want to do this cool thing, but Perl 6 isn't 'official' yet. I think I'll wait." then you miss out on the cool thing. It passes you by | ||
moritz_ | re-wrote it, and changed my understanding of it twice | ||
that kinda shows in the code base | |||
pmichaud | jnthn: "NQP" more accurate? or still not yet? | ||
masak | PerlJam: those people should totally check out Yapsi. | 13:33 | |
jnthn | pmichaud: In that case, "partially" | ||
pmichaud: We'll be mostly in NQP later on this year though. | |||
Su-Shee | PerlJam: well essentially I believe that people mix up "basic features of the language which are really essential to do this or that" and "having not a nice library environment yet". | ||
pmichaud | Su-Shee: can I quote you directly? | 13:34 | |
PerlJam | Su-Shee: yeah, probably. | ||
jnthn | pmichaud: On critical items remaining, "Backtracking in regexes" ==> I think we have that partially? Just not fully? | ||
masak | jnthn: correct. | ||
Su-Shee | pmichaud: sure. (which one? :) | ||
pmichaud | oh, I'm missing "subrules" there. | ||
colomon | so.... is there a good reason I shouldn't use "use TrigCommon" (or something like that) to stick all the common stuff in the different trig tests in simple common .pm6 file? | ||
jnthn | pmichaud: as in, I think the slides maybe overstate that todo to make it sound like we have no backtracking | ||
masak | pmichaud: subrules and capturing parens. | ||
PerlJam | Su-Shee: the people who want a "nice library environment" aren't really early adopters though, so it's okay :) | ||
pmichaud | 13:26 <Su-Shee> pmichaud: maybe you could emphazise a little that you plainly don't need a "complete" distribution/release for many modules-to-be-written. | ||
13:35
Guest17144 joined
|
|||
mathw | Well actually, writing modules is one of the things that needs to be done to make a "complete" distribution | 13:35 | |
jnthn | pmichaud: Also, you forgot to include the release date for 6.0.0. ;-) | ||
Su-Shee | pmichaud: of course, go ahead. | ||
jnthn | <duck> | ||
mathw | So if you want such a thing, write some modules! | ||
moritz_ | colomon: no. Module usage is quite common in the test suite, if a bit clumsy to load | ||
jnthn | pmichaud++ # great slides | ||
pmichaud: And good to have read before I prepare mine for Belgium. :-) | 13:36 | ||
moritz_ | colomon: put it in t/spec/packages, BEGIN{ @*INC.push: 't/spec/packages' }; use TrigCommon; | ||
colomon | moritz_++ | ||
Su-Shee | mathw: I mean the difference between having the necessary basics to bind SSL and actually writing the bindings and having later something like SSL.pm The former is something rakudo would have to deliver, the latter isn't. | 13:37 | |
bbkr | rakudo: class X is Cool {} # yay, compiles :) | ||
p6eval | rakudo 1277e1: ( no output ) | ||
mathw | Su-Shee: yes | 13:38 | |
there are a lot of cool modules to write once NCI is vaguely stable | |||
Su-Shee | mathw: on that notion we two probably would just need GIR in zavolaj and hey, what else do you really need to bind Gtk? | ||
mathw | umm... nothing? | ||
Su-Shee | language-wise not really much I'd say... working classes, methods, an operator here and there.. callbacks.. | 13:39 | |
PerlJam | I was thinking the other day that it would be neat to get Padre written in Perl 6. Getting Wx working would be a good first step. | ||
colomon | rakudo: my %a = a => 10, b => 32; say :%a.perl | ||
p6eval | rakudo 1277e1: OUTPUT«"a" => {"a" => 10, "b" => 32}» | 13:40 | |
masak | PerlJam: because Padre is too fast currently? :P | ||
Su-Shee | *haehaehae* ;) | ||
colomon | not quite as nice as show, I guess.... | ||
PerlJam | masak: Perl 6 needs a "killer app" or two. Why not an editor? | 13:41 | |
masak: beside, the human is still the bottleneck in editors. | |||
masak | PerlJam: absolutely. go for it. | ||
Su-Shee | PerlJam: because there's already thousands of them and the stuff you'd have to install just to get this specific editor running.. no way. | ||
moritz_ | PerlJam: the editor market is mostly saturated... you create killer apps by opening up a new market, not by trying to occupy an existing one | 13:42 | |
PerlJam | Su-Shee: see ... at this stage of Perl 6 developement, you're supposed to be *en*couraging people to develop perl 6 apps, not *dis*couraging them ;) | ||
Su-Shee | unless you really really make it better. | ||
PerlJam | moritz_: you too! :) | ||
moritz_ | PerlJam: I do want to encourage you to write a killer app - I just don't think an editor will be it | 13:43 | |
Su-Shee | PerlJam: if you really want "apps", you're running into the "environment" problem very fast. let's start with "useful modules" first. ;) | ||
moritz_ | unless you have some *really* great ideas you haven't shared yet | ||
PerlJam | moritz_: trust me, if I had any great ideas, you guys would all know about them :) | 13:44 | |
slavik | I take it rakudo* will be a properly installable release? | ||
moritz_ | slavik: yes | ||
slavik | sweet, finally :P | ||
Su-Shee | \o/ | 13:45 | |
moritz_ | uhm | ||
13:45
ashleydev joined
|
|||
moritz_ | all the last rakudo releases were properly installable | 13:45 | |
slavik | `make install` does not count | ||
moritz_ | why not? | ||
slavik | or rather maybe it does | ||
pmichaud | Su-Shee: slide 43 (updated) | ||
PerlJam | slavik: how do you think you'll install R*? | ||
slavik | when I ran make install, the libraries were referenced to my home dir which is where the source was | ||
and proper PERL6LIB? | |||
PerlJam | slavik: note, there are .debs and .rpms and such of Rakudo compiler releases now. | 13:46 | |
slavik | nice | ||
PerlJam: any links? | |||
PerlJam | not off the top of my head as I don't use them. :) | ||
moritz_ | slavik: 'make install' copies Test.pir (and Test.pir) into a location where the installed rakudo will find them. If that's not the case, please file a rakudobug | ||
s:2nd/pir/pm/ | |||
slavik | this was a while ago though | ||
Su-Shee | pmichaud: :) github.com/mberends/fakedbi/blob/ma.../mysql.pm6 - that is just a loop, class, method, push (ok the actual stuff is the binding itself of mberends and jnthn of course..) | 13:47 | |
pmichaud | (adding "use lib" to the "Items known to be missing..." slide | ||
moritz_ | use "lib" depends on use <list> in general | 13:48 | |
which is NYI | |||
pmichaud | right. | ||
moritz_ | which is why I haven't written lib.pm yet :-) | ||
pmichaud | we might have that by R*, but i'll put it down as missing (and because I know it's frequently asked here) | ||
masak | jnthn: I'm running up against an invisible obstacle when adding postcircumfix:<[ ]> to Buf. seen anything like this before? gist.github.com/448480 | 13:52 | |
(the test that fails is one that uses .[] on a Buf object) | |||
moritz_ | masak: try it with a single scalar paramater first | 13:53 | |
masak | will do. | ||
moritz_ | positonal should then handle the general case with *@indices | ||
masak | oh, it's that way around? I keep forgetting. | 13:54 | |
pmichaud | some Perl 6 Evil from TheDamian: | ||
$foo.perl # dumps the content of foo | |||
:$foo.perl # dumps the content of foo -and- tells you its name | |||
moritz_ | is that the right precedence? | 13:55 | |
masak | ah, that explains colomon's evaluation above. | ||
moritz_ | seems like | ||
masak | moritz_: yes, terms are the tightest. | 13:56 | |
method postfix comes second. | |||
pmichaud | :$foo is a colonpair (term), so yes, it's higher precedence | ||
colomon | masak: yes, I was checking to see if Damian's magic worked in Rakudo. :) | ||
masak | reason it looks wrongish is probably that we're used to ~ and + and ? binding a bit looser. :) | ||
masak is very happy TheDamian is exploring Evil in Perl 6 | 13:57 | ||
pmichaud | his next talk is "(Re)Developing in Perl 6" :) | ||
colomon | we're about to get a full dose of it. | ||
pmichaud | I'm curious to see if he deftly avoids rakudobugs or plows right into them for us all to see :) | ||
13:57
aesop_ left
|
|||
masak wishes he were there | 13:58 | ||
Su-Shee | .oO( a really detailed perl 6 book will have about 1500 pages...) |
13:59 | |
masak: well you are presenting stuff like that at the yapc:eu, won't you? ;) | |||
jnthn | masak: *@indices | 14:00 | |
masak | Su-Shee: I hope so. sent in two talks, but haven't heard back yet. | ||
jnthn | masak: ur doin it rong | ||
masak | jnthn: ok. | ||
jnthn: what moritz_ said? | |||
jnthn | masak: postcircumfix:<[ ]> only ever receives one argument these days. | ||
masak: If there's many args, it'll be a Parcel. | |||
masak | right. what moritz_++ said. | ||
jnthn | :-) | 14:01 | |
masak | jnthn: oh! | ||
colomon | moritz_: that BEGIN block doesn't seem to have an effect? :\ | ||
jnthn | masak: In theory, looking at role Positional { ... } in the core setting will be informative. | ||
masak: In practice, I'm not sure how it looks ;-) | |||
moritz_ | colomon: uhm, it works in many tests that use Test::Util | ||
colomon: unless I typoed somewhere, or you're in the wrong working directory | 14:02 | ||
14:02
Zapelius left
|
|||
bbkr | what is the difference between foo(*@t) and foo(@t) ? | 14:02 | |
masak | jnthn: I've glanced at it, if only because the error messages pointed there. | ||
bbkr: know about argument flattening? | |||
moritz_ | colomon: to be clear, we expect the working dir to be the rakudo dir, so that the relative path to the test file starts with t/spec/ | ||
masak | bbkr: the former accepts several arguemnts, the latter only one (array) argument. | ||
Su-Shee | I just parsed "flattering" .. I should go home early today.. | 14:03 | |
masak | Su-Shee: a spoof of Perl 6 should definitely have "argument flattering". ;) | ||
bbkr | i know. but i can always use *@ version if i want all arguments, right? that makes "our multi sub item(@values)" in operators.pm obsolete since there is "our multi sub item(*@values)" fefinition also | ||
14:03
aesop joined
|
|||
jnthn | bbkr: The first is likely tighter though | 14:04 | |
Su-Shee | masak: it makes your argument more beautiful? ;) | ||
jnthn | "What a beautiful argument you are!" | ||
Su-Shee | masak: or just hides its ugliness? :) | ||
masak | Su-Shee: each and every argument is beautiful in its own special way. | ||
Su-Shee: but the flattering... highlights it. :) | 14:05 | ||
Su-Shee starts with Module::MakeUp then.. ;) | |||
masak | :P | ||
colomon | moritz_: syntax was slightly wrong | ||
BEGIN { @*INC.push('t/spec/packages/') }; works | |||
masak | is_deeply 'abc'.encode()[1, 2], [98, 99], 'can slice-index a Buf'; | 14:06 | |
but it should be (98, 99) | |||
so I changed it to that, and was surprised it worked. | |||
shouldn't () auto-flatten in argument lists? | 14:07 | ||
or is that Perl 5-think? | |||
moritz_ | masak: it's the operation that flattens (or not) | ||
and signature biding does not | |||
assignment to an array does | 14:08 | ||
masak | noted. | ||
mental model updated. | |||
proceeding. | |||
14:08
aesop left,
patspam joined
14:09
aesop joined
|
|||
jnthn is happy to see Buf coming along | 14:10 | ||
bbkr | can this condition ever fail? [email@hidden.address] === @b.WHAT" ? | ||
moritz_ | yes | ||
if @a and @b are typed arrays | |||
jnthn | Easily. | ||
14:10
plobsing joined
|
|||
moritz_ | or @a and @b hold different container types | 14:10 | |
the @ just implies Positional | |||
jnthn | Or either of them got mixed into. | ||
moritz_ | funny thing is, if Match ~~ Positional in Rakudo, you could try | 14:11 | |
my @a is Match; | |||
and see what happens :-) | |||
mathw | rakudo: role A {}; my @a; my @b does A; say @a.WHAT; say @b.WHAT; # maybe | ||
p6eval | rakudo 1277e1: OUTPUT«Array()()» | ||
jnthn | rakudo: my @a = 'abc' ~~ /(a).*(c)/; # guess this is fine | ||
bbkr | thanks for your patience. you can explain everything :) | ||
mathw | oh now that's not what I was expecting | 14:12 | |
p6eval | rakudo 1277e1: ( no output ) | ||
jnthn | rakudo: my @a = 'abc' ~~ /(a).*(c)/; for @a { .say } | ||
p6eval | rakudo 1277e1: OUTPUT«abc» | ||
jnthn | heh :-) | ||
moritz_ | jnthn: I guess that Match doesn't do .flat yet | ||
jnthn | I guess not. | ||
rakudo: my @a = 'abc' ~~ /(a).*(c)/; say @a[0]; say @a[1]; | |||
p6eval | rakudo 1277e1: OUTPUT«abc» | ||
jnthn | No, it doesn't. | 14:13 | |
moritz_ | rakudo: 'abc' ~~ /(a).*(c)/; say $/.flat.perl | ||
p6eval | rakudo 1277e1: OUTPUT«(Match.new( # WARNING: this is not working perl code # and for debugging purposes only from => 0, orig => "abc", to => 1, positional => [, ],), Match.new( # WARNING: this is not working perl code # and for debugging purposes only from => 2, orig => "abc", to | ||
..=> 3… | |||
pmichaud | Match just needs to do a good .list in order to do .flat | ||
14:14
aesop left
14:15
aesop joined
|
|||
Su-Shee | aren't there any nice foto albums yet from the yapc? :) | 14:17 | |
cognominal | Apparently I have a split personnality : pmichaud.com/2010/pres/yapcna-rakud...ide30.html | 14:24 | |
pmichaud, make that Stéphane "cognominal" Payrard. :) | 14:25 | ||
14:25
christine left
|
|||
moritz_ | sometimes it's hard to keep track of the various nicks + real names | 14:25 | |
14:25
ejs joined
|
|||
cognominal | :) | 14:25 | |
masak | cognominal: sorry about that. must've missed it when I proof-read the list. | 14:26 | |
moritz_ | cognominal: if you submit a patch that adds your name + author to CREDITS, you decrease chances of that happening again | 14:28 | |
14:28
christine joined
|
|||
cognominal | my bad :) | 14:29 | |
good luck for your talks btw. | |||
dalek | kudo: 7b5b9d5 | moritz++ | docs/announce/2010.06: un-split cognominal's personality |
14:30 | |
moritz_ | that was just in the release announcement | ||
14:31
Kodi joined
|
|||
pugssvn | r31408 | masak++ | [t/spec/S32-str/encode.t] corrected test | 14:31 | |
r31408 | | |||
r31408 | The thing returned from an indexing shouldn't be an array, but a capture. | |||
masak | I now have Buf indexing working locally. | ||
jnthn | \o/ | 14:32 | |
moritz_ | ship it! | ||
masak | :) going to push the commit to a github branch. | ||
jnthn | Now we can see what's in the Buf. ;-) | ||
masak | :) | ||
Kodi | Is it kosher to say "multi infix:<eqv> (MyClass $a, MyClass $b) { ... }" or "multi infix:<cmp> (MyClass $a, MyClass $b) { ... }" in order to customize how, e.g., the series operator works? cmp() and eqv() are specced as multis, but so far as I can see, their infix equivalents aren't. | 14:33 | |
jnthn | Kodi: I think all infixes are multis. | 14:34 | |
moritz_ | right | ||
masak | Kodi: 'their infix equivalents'? is there anything except the infix forms? | ||
Kodi | masak: Yeah, cmp() and eqv(). | ||
mathw | makes sense for all infixes to be multis | ||
they're not very generally useful if they aren't | |||
jnthn | masak: there's these spec'd eqv and cmp functions. Apart from their existence is spec'd, but I don't think their semantics are. ;-) | ||
masak | rakudo: say cmp(5, 42) | 14:35 | |
p6eval | rakudo 1277e1: OUTPUT«Could not find sub &cmp in main program body at line 11:/tmp/u87Xo8Ee6c» | ||
masak | I say remove them from the spec. | ||
moritz_ | +1 | ||
jnthn | Their existence seems...unrequired. | ||
+1 | |||
masak removes them | |||
mathw | +2 | ||
jnthn | +42 | ||
mathw | +42**42 | ||
masak++ | |||
Kodi | Remember that it's not actually cmp(5, 42) but cmp(&infix:cmp, 5, 42); | ||
For what that's worth. | 14:36 | ||
moritz_ | masak += pick(1 .. 42**42) | ||
jnthn | rakudo: say pick(1 .. 42**42) | ||
mathw waits nervously | |||
p6eval | rakudo 1277e1: ( no output ) | ||
moritz_ | masak += 1 but timeout() | ||
jnthn | ...I guess we didn't define .pick on Ranges to be efficient? ;-) | 14:37 | |
moritz_ | right | ||
Kodi | jnthn: So is it that anything one declares as infix magically becomes multi, or that, by convention, all of Perl 6's builtin infix ops are multi? | ||
jnthn | Kodi: convention. | ||
Kodi | I see. | ||
moritz_ | Kodi: all infixes in the core languages come with a proto | ||
jnthn | Kodi: src/core/operators.pm is where they're defined that way. | ||
moritz_ | and a proto implies that all things with the same name are multis by default | 14:38 | |
jnthn | Kodi: There's nothing to stop you declaring an only infix:<myop>($a, $b) { } though. | ||
moritz_ | ... except convention :-) | ||
Kodi | Right. Shouldn't this convention be in S03, though? Or is it hidden there? | ||
14:38
colomon left
|
|||
jnthn | Yes, the convention-enforcing polar bears may nom you if you don't mark them multi. But that aside... | 14:39 | |
moritz_ | jnthn: you don't live *that* far north, do you? :-) | 14:40 | |
pugssvn | r31409 | masak++ | [S29, S32] removed eqv() and cmp() functions | ||
r31409 | | |||
r31409 | They don't confer any particular advantages over the operator forms. | |||
r31409 | The support for their removal on #perl6 was overwhelming. | |||
Kodi | So long as I don't have to face the goto-hating raptors. | ||
jnthn | moritz_: No, but I visit masak occasionally. ;-) | 14:41 | |
masak | right. the famous Uppsala polar bears. | ||
jnthn | masak: Yeah, they were terrifying but cute. | ||
masak | one gets used to them after a while. | 14:42 | |
I hardly notice them any more. | |||
jnthn | I don't think I could bear it every day. | ||
masak | :P | ||
moritz_ | ouch | ||
masak | (unbearable puns)++ | ||
14:43
plobsing left
14:46
yahooooo joined
14:47
Kodi left
15:01
thebird left
15:02
thebird joined
|
|||
pmichaud | TimToady++ says that Match is Cool :) | 15:02 | |
masak | it feels Cool. | ||
jnthn | rakudo: say Match ~~ Cool | 15:03 | |
p6eval | rakudo 7b5b9d: OUTPUT«1» | ||
pmichaud | hmmm, it's already cool. | ||
jnthn | Rakudo is cool with that too. | ||
moritz_ | Match *is* cool | ||
pmichaud | say (' xyz ' ~~ /.*/).trim | ||
rakudo: say (' xyz ' ~~ /.*/).trim | |||
p6eval | rakudo 7b5b9d: OUTPUT«any(Match.new( # WARNING: this is not working perl code # and for debugging purposes only from => 2, orig => " xyz ", to => 6, positional => [, ],))» | 15:04 | |
moritz_ | wtf is calling .perl here? | ||
pmichaud | rakudo: say (' xyz ' ~~ /.*/).Str.trim | ||
p6eval | rakudo 7b5b9d: OUTPUT«xyz» | ||
TimToady | rakudo: $_ = " foo "; say /.*/.trim | ||
phenny | TimToady: 05:17Z <sorear> tell TimToady I finally understand what you were talking about re. allomorphism. It's a core concept in the CLR, although we call it "interfaces". | ||
p6eval | rakudo 7b5b9d: OUTPUT«_block48» | ||
pmichaud | rakudo: say (' xyz ' ~~ /.*/).WHAT | 15:05 | |
p6eval | rakudo 7b5b9d: OUTPUT«Match()» | ||
pmichaud | rakudo: say (' xyz ' ~~ /.*/) | 15:06 | |
p6eval | rakudo 7b5b9d: OUTPUT« xyz » | ||
pmichaud | rakudo: say (' xyz ' ~~ /.*/).trim | ||
p6eval | rakudo 7b5b9d: OUTPUT«any(Match.new( # WARNING: this is not working perl code # and for debugging purposes only from => 2, orig => " xyz ", to => 6, positional => [, ],))» | ||
pmichaud | something is wrong with .trim somewhere in the Match hierarchy. | ||
(this is from code in Damian's talk, btw) | |||
ohhhhhhhh | 15:07 | ||
evil | |||
if self ~~ /^\s*:(.*)$/ { | |||
moritz_ | Cool.trim calls a regex match self ~~ $some_regex | ||
pmichaud | right | ||
it needs to stringify first | |||
it can't assume that self is a str | |||
jnthn | pmichaud: I ran into a related issue the other day | ||
pmichaud: Should Regex.ACCEPTS always stringify? | |||
pmichaud: Before matching? | 15:08 | ||
pmichaud: I almost did it but then it felt rong. | |||
pmichaud | jnthn: I'd prefer it not do that | ||
the problem isn't with the ~~, it's that anything in Cool-str.pm needs to make sure to be stringifying self | |||
jnthn | pmichaud: OK. | 15:09 | |
pmichaud | (at least in this case) | ||
masak submits rakudobug | |||
moritz_ | moritz.faui2k3.org/tmp/weird-param.svg | 15:10 | |
that's what I get for simulating a mass hanging down from a spring, and elongated sideways + down | |||
arnsholt | moritz_: A Perl 6 spirograph? =) | ||
moritz_ | and with different spring force in x direction than in y direction | 15:11 | |
masak | arnsholt: I was thinking the same thing! but it's not arc-y enough. | ||
15:12
azert0x joined
|
|||
moritz_ | if you look at x(t) and y(t) it's rather boring | 15:15 | |
just two sines with slightly different frequencies and amplitudes | |||
15:16
ejs left
15:20
Su-Shee left
|
|||
masak | chromatic tweets "Only Perl 5 can parse Perl 5, but every Perl 6 can parse Perl 6. Hooray for grammars." twitter.com/chromatic_x/status/16777930338 | 15:20 | |
_sri | kraih.com/perl6-amelia-sri.png # let me introduce you to amelia, camelias psychedelic more commercial oriented little sister :) | 15:22 | |
masak | :) | ||
moritz_ likes her | |||
masak | _sri++ # I can see the resemblance! | 15:23 | |
jnthn | Söt. :-) | ||
sbp | font hurts my eyes | 15:24 | |
but I do like how the "e" looks like it's having a good old chuckle | |||
that "e" has personality | |||
masak | :D | ||
_sri | lol | 15:25 | |
masak | sbp: I won't ever be able to look at that "e" again without thinking that! | ||
sbp | hehe | ||
jnthn | Oh wow, I hadn't noticed that first time :-) | 15:26 | |
15:28
Ross joined
|
|||
masak | rakudo: my ($found) = grep 1, 1..1_000_000; say 'alive' | 15:28 | |
p6eval | rakudo 7b5b9d: ( no output ) | 15:29 | |
masak | :/ | ||
jnthn | That's...surprising. | 15:30 | |
masak | is it worth an RT ticket? | ||
jnthn | masak: It hangs at repl? | 15:31 | |
masak: I think it should be lazy. | |||
If it's not being then yes, imo. | |||
masak tries | |||
jnthn | (good to verify not just p6eval oddity) | ||
masak | yes, hangs at REPL. | ||
masak submits rakudobug | 15:32 | ||
15:32
am0c left,
ejs joined
|
|||
masak | it even segfaulted :( | 15:33 | |
after a minute or so. | |||
arnsholt | OOM perhaps? | ||
jnthn | :-/ | ||
masak | arnsholt: likely, yes. | 15:34 | |
moritz_ | is list asignment eager in general? | ||
arnsholt | Smells like someone forgot to check the return value of a malloc() | ||
15:34
ash_ joined
|
|||
moritz_ | rakudo: my ($a, $b) = (1..*).map({ $_ }); say $b | 15:34 | |
arnsholt | (Might be LHF for a Parrot patch though) | ||
TimToady | can Term::Readkey be called via blizkost? | 15:35 | |
p6eval | rakudo 7b5b9d: ( no output ) | ||
moritz_ | arnsholt: finding the spot is likely not | ||
arnsholt | True | ||
jnthn | TimToady: sorear++ would probably knwo for sure, but afaik Blizkost + IO is a little shakey still. | ||
15:36
macdaddy joined,
patspam left
|
|||
dalek | ok: 00b8fc7 | (Hongwen Qiu)++ | src/grammars.pod: [grammars.pod] fix typo |
15:36 | |
jnthn | TimToady: (Parrot + Perl 5 IO layers both at work at once => fun :-)) | ||
TimToady | biab & | 15:37 | |
15:38
ash__ left
15:39
ash_ left
15:41
Su-Shee joined
15:43
meppl joined
|
|||
avar | moritz_: Please just remove me from perl6/book. I'm not going to ever contribute to something that's cc-nc anyway. | 15:43 | |
moritz_ | avar: if you wish. (we do plan to remove the nc restriction at some point, but I guess I can add you back when that happens, and you want it) | 15:47 | |
15:47
foodoo left,
am0c joined
15:48
skids left
|
|||
avar | moritz_: Well the sooner the better, it has 21 contributors now says git, ex-post-facto license change is a pain. | 15:50 | |
masak | avar: ooc, why don't you want to commit to something cc-nc? | 15:52 | |
avar | Because I don't contribute to proprietary projects unless someone is paying me for it. That's all. | 15:53 | |
pmichaud | can someone give me a one-line summary of proto/pls for my talk? | ||
avar | "A preliminary package manager for Perl 6 that just about works" >:) ? | 15:54 | |
pmichaud | is it now officially "pls" and not "proto" ? | ||
moritz_ | pmichaud: 'pls' is the new, not-yet-working replacement for 'proto' | ||
masak | pmichaud: "proto is being phased out, and pls is in early development but showing real promise" | ||
pmichaud | perfect. | 15:55 | |
and 'pls' officially stands for ... ? | |||
masak | "pls" :) | ||
diakopter | lolplease | ||
moritz_ | pls install $stuff | ||
Su-Shee | polite library IforgottheS | ||
masak | "PLS Library System" | ||
diakopter | si vou plait | ||
Su-Shee | system. excactly. | ||
jnthn | pmichaud: I think the original suggester had it as the rather boring "Perl 6 Library System" | ||
pmichaud | I like "PLS library system" | 15:56 | |
jnthn | pmichaud: But mostly for the acronym. ;-) | ||
pmichaud: Same. :-) | |||
avar | masak: /w 6 | ||
oops | |||
masak | avar: I would, but I'm not on irssi :P | ||
avar | window six is all the rage! | 15:57 | |
masak only has 5 windows open :) | |||
"Pwn Lol Sekkrit" | |||
but I did like diakopter++'s "SiL vous Plait" | 15:58 | ||
Su-Shee | I'm still for "polite library system" ;) | 15:59 | |
or polite library servant ;) | |||
16:03
ash_ joined
|
|||
avar | Is there any plan to integrate this or future perl6 library systems with CPAN? | 16:04 | |
jnthn | masak: Heh. It's also ПожаЛуйСта | ||
16:04
ejs left
|
|||
masak | jnthn: wow! | 16:05 | |
on twenty-second thought, pls really stands for "Proto-Like System". | |||
moritz_ likes polymorphic abbreviations | 16:06 | ||
masak | avar: the support has to come from CPAN first. after that, it's no problem hooking something like pls into it. | ||
diakopter | pls jfdwim | 16:08 | |
avar | masak: Who's developing pls? | 16:09 | |
masak | avar: I'm the only one who's been writing code for it so far. | ||
16:09
ashleydev left
|
|||
masak | avar: use.perl.org/~masak/journal/40403 | 16:09 | |
jnthn | pls increase busnumber | 16:10 | |
16:11
colomon joined
|
|||
masak | I think it'll be more accessible for other people as soon as I put together my proof-of-concept. | 16:11 | |
i.e. hook the core classes into a couple of classes which can actually install something a la proto. | |||
avar | masak: Have you talked to the CPAN people like Dan Golden about doing that? There were some plans being thrown around for having *6/ folders for Perl 6, which would be handled by PAUSE. And in the CPAN 2.0 META spec you can set perl >=6.0 in the prereq spec | 16:12 | |
Just that last bit + a dumb custom indexer that's not PAUSE would get Perl 6 on CPAN relatively quickly | |||
masak | avar: have not talked to anyone directly, but I've also heard about the 6/ folder. | ||
I'm eager to see people explore that area of possibilities. | 16:13 | ||
what we need is intrepid explorers. | |||
avar | I think you not talking might be a big part of the problem :) | ||
Because what I hear from the other side is basically "sure we'd like to support Perl 6, but they haven't talked to us" | |||
16:13
justatheory left
|
|||
ash_ | right now people are still focused on getting the core working | 16:13 | |
16:14
justatheory joined
|
|||
moritz_ | avar: I've tried to talk to the right people about it, and got rather discouraging responses (about one or two years ago) | 16:14 | |
ash_ | its not that they don't want to get CPAN working, its just CPAN isn't that useful if "use" doesn't work (like it didn't a few months ago) | ||
masak | avar: I generally shy away from "Solving The Problem"-like activities. I'm more interested in "solving the problem" without the capitals. | 16:15 | |
moritz_ | avar: it's kinda hard for an outsider to find whom to talk to, on what medium etc | ||
PerlJam | moritz_: irc.perl.org:#p5p <-- a good place to start. | ||
avar | #toolchain is a lot better, actually | ||
masak | avar: that said, if what you're saying is true, then maybe it's time to talk to someone. | ||
yes, #toolchain is the place, I think. | |||
masak heads over there | 16:16 | ||
PerlJam | avar: you prove mortiz's point ::) | ||
er, :) | |||
avar | masak: But what I'm saying is that using the CPAN infrastructure is "solving the problem". Because using CPAN really is quite easy. | ||
moritz_ | avar: that said, once we have a working solution for not indexing p6 stuff for search.cpan.org, I'll try to integrate it with whatever module installer we have | ||
masak | avar: believe it or not, it has never been my intent to write a module installer. | ||
avar | on search.cpan.org or in the PAUSE index? | ||
moritz_ | both | 16:17 | |
16:17
sjn left
|
|||
moritz_ | search.cpan.org non-indexing can be achieved in the META.yml, I know | 16:17 | |
16:17
cono left
|
|||
moritz_ | but afaict that still blocks the namespace, no? | 16:18 | |
avar | The right way to do it would just be : if ($module && $meta->{prereq}{perl} >= 6.0) { do_perl6_index } else { do_as_usual } | ||
moritz_ | and the module shows up in the 02packages.details.txt.gz and related lists | ||
avar | and make it start generating 02packages6.details.txt.gz etc. | 16:19 | |
moritz_ | so, where's the repo that I should patch to do that? | ||
avar | github.com/andk/pause | ||
Or just ask andk et al what they think, they might have better ideas. | 16:20 | ||
moritz_ | well, that's something to start from | 16:21 | |
thanks | |||
avar | np | ||
colomon | has someone done a test yet for .trim on a Match object? | ||
16:22
[mark] left
|
|||
moritz_ | colomon: don't think so... but I have a local patch :-) | 16:22 | |
masak | moritz_++ | ||
colomon | :) | ||
yeah, that one was definitely LHF | |||
16:22
azawawi joined
|
|||
azawawi | hi | 16:22 | |
16:23
kfo_ joined
|
|||
moritz_ | colomon++ reminding me of TDD :-) | 16:25 | |
pugssvn | r31410 | moritz++ | [t/spec] Match.trim | ||
dalek | kudo: ad2afb5 | moritz++ | src/core/Cool-str.pm: stringify self in Cool.trim-{leading,trailing} |
16:26 | |
16:27
kfo left,
kfo_ is now known as kfo
|
|||
colomon | \o/ | 16:27 | |
avar | One thing that would make writing Perl 6 modules Really Easy would be to make Dist::Zilla plugin for it | 16:29 | |
i.e. one that set all the needed Perl 6 stuff like the right requires version and so on. | |||
aCiD2 | perl 6 newbie: what stuff do you have to setup? | 16:30 | |
avar | you can set custom metadata with x_* CPAN META keys which could be interpreted by some custom indexer | ||
masak | avar: yes yes please please | ||
avar | :) | ||
aCiD2 | it's not just a case of running you script through perl6 not perl5? | ||
masak | aCiD2: rakudo.org/how-to-get-rakudo | ||
aCiD2 | i did that this morning :) | ||
but I haven't had chance to play with it | |||
masak | aCiD2: oh, you mean "what new things do I have to learn?"? | ||
16:31
am0c left
|
|||
masak | aCiD2: no, not many Perl 5 programs will run directly under perl6. | 16:31 | |
aCiD2 | right, but I meant a brand new perl6 program | ||
avar made it sound like I have to do special things just to get that to work | |||
masak | aCiD2: if you have Rakudo installed, you can just type 'perl6' and get started! | ||
that should give you a primitive shell, in which you can try Perl 6 syntax. | 16:32 | ||
aCiD2 thinks signals are getting crossed :) | |||
masak | having the synopses at arm's reach helps, too. | ||
16:32
Ross^ joined
|
|||
aCiD2 | i.e. one that set all the needed Perl 6 stuff like the right requires version and so on. <--- I was refering to this | 16:32 | |
masak | not sure what that means. | ||
aCiD2 | ah, nor was I :) | ||
16:34
Ross left
|
|||
masak | aCiD2: generally, when I'm to run a Perl 6 script, I don't need to set up anything. | 16:34 | |
aCiD2: when I'm to run a Perl 6 module, I usually need to either set PERL6LIB, or install the module into ~/.perl6/lib | 16:35 | ||
ash_ | does PERL6LIB also check wherever rakudo was installed to? | ||
masak | ash_: you can find out -- just do `echo $PERL6LIB` | 16:37 | |
ash_ | well mines not set, but i guess i mean does the default include path include $rakudo_prefix/lib or something or just ~/.perl6/lib | 16:38 | |
16:40
Trashlord left
16:41
azawawi left
16:42
rv2733 left
16:45
cdarroch joined,
cdarroch left,
cdarroch joined
16:46
ashleydev joined
16:51
colomon left
16:57
tylerni7 left
16:58
eternaleye left
16:59
colomon joined,
kthakore left
17:02
dakkar left
|
|||
masak | ash_: one way to find out is with `perl6 -e 'use Foo'` -- the error message lists the places Rakudo looks for modules. | 17:02 | |
ash_ | oh, nice | ||
thanks masak++ and i could of just printed @*INC i just realized | |||
masak | rakudo: say @*INC.perl | 17:03 | |
p6eval | rakudo ad2afb: OUTPUT«["lib", "/home/p6eval/.perl6/lib", "/home/p6eval//p2/lib/parrot/2.5.0-devel/languages/perl6/lib", "."]» | ||
ash_ | rakudo: say ~@*INC | ||
p6eval | rakudo ad2afb: OUTPUT«lib /home/p6eval/.perl6/lib /home/p6eval//p2/lib/parrot/2.5.0-devel/languages/perl6/lib .» | 17:04 | |
colomon | pmichaud's rakudo * talk starting now. | ||
17:04
davidfetter joined
|
|||
masak | rakudo: @*INC.=reverse; say @*INC.perl | 17:04 | |
p6eval | rakudo ad2afb: OUTPUT«Cannot assign to readonly value in '&infix:<=>' at line 1 in main program body at line 11:/tmp/jYjRQ3KTnc» | ||
davidfetter | hello | ||
masak | davidfetter: \o | ||
ash_ | rakudo: @*INC = 1, 2; | ||
p6eval | rakudo ad2afb: OUTPUT«Cannot assign to readonly value in '&infix:<=>' at line 1 in main program body at line 11:/tmp/IDg7myCYoS» | ||
masak | pmichaud++ # good luck! | ||
ash_ | aww hmm, why is it read only? | 17:05 | |
davidfetter | so with the upcoming release of rakudo to the world, i'm looking for sucke^Wvolunteers to get the last little tweaks on PL/Rakudo done | ||
anybody here interested in postgresql? | |||
17:07
cygx joined
|
|||
masak | ash_: yeah, that feels wrong, doesn't it? | 17:07 | |
rakudo: @*INC.push("OH HAI"); say @*INC.perl | |||
p6eval | rakudo ad2afb: OUTPUT«["lib", "/home/p6eval/.perl6/lib", "/home/p6eval//p2/lib/parrot/2.5.0-devel/languages/perl6/lib", ".", "OH HAI"]» | ||
PerlJam | davidfetter: aye. I'm interested (no experience with it however) | ||
cygx | see github.com/moritz/try.rakudo.org/ra...ter/DESIGN for how I would design try.rakudo.org | ||
masak | ash_: only the container is, though. | ||
cygx | feedback welcome | ||
ash_ | masak: ah, i guess that makes sense... | ||
davidfetter | PerlJam, lack of experience with that code base is not really a barrier. interest is pretty much the big one :) | ||
PerlJam | davidfetter: interest and time. I never seem to have enough of that second one. | 17:08 | |
:-) | |||
masak | ash_: not sure it does. but it makes it not-as-bad. | ||
davidfetter hands PerlJam some tuits | |||
PerlJam | I'm taking a week long vacation the week of Jul 5. During that time I will have time to hack on things: perl6book, rakudo, whatever. | 17:09 | |
davidfetter | there's a #plparrot here on freenode | ||
+ ancillary stuff like a web site, mailing list, etc. | |||
ash_ | masak: well, is there a good reason to let someone do @*INC = ? you loose all of the default load paths if you do that | ||
moritz_ | ash_: is there a good reason not to allow it? | ||
ash_ | (how do you even make a container R only?) | 17:10 | |
moritz_ | in general we allow people to shoot in their foot if that's what they wish | ||
is there a #phasers meeting today? | 17:11 | ||
ash_ | rakudo: my @*INC = @*OUTER::INC; say @*INC | 17:12 | |
masak | moritz_: I assume there is. | ||
p6eval | rakudo ad2afb: ( no output ) | ||
ash_ | hmm | ||
jnthn | I can make a #phasers | 17:13 | |
ash_ | the should the REPL die every time there is an uncaught error? | 17:14 | |
jnthn | no | 17:17 | |
17:18
aCiD2 left
|
|||
[Coke] | the REPL should have a last ditch handler, methinks. | 17:19 | |
17:21
davidfetter left
|
|||
jnthn | [Coke]: I think it sometimes fails because it encounters an error when auto-printing/stringifying the result it gets. | 17:22 | |
And that isn't protected. | |||
17:24
cdarroch left
|
|||
masak | do you have an example? | 17:24 | |
masak submits @*INC rakudobug | 17:26 | ||
jnthn | masak: Not to hand, just an observation a while ago that I didn't have chance to investigate further. And something of a hunch/guess. :-) | 17:27 | |
masak | yep, got it. | 17:28 | |
> class A { method Str { die "OH HAI" } }; A.new | |||
===SORRY!=== | |||
OH HAI | |||
masak submits rakudobug | |||
jnthn | masak: Well done. :_) | 17:29 | |
masak bows | 17:30 | ||
time for nom. see you at the #phasers meeting. o/ | 17:33 | ||
17:33
masak left
17:34
eternaleye joined,
cdarroch joined,
cdarroch left,
cdarroch joined
17:35
skids joined
17:39
supernovus joined
17:44
eternaleye left
17:46
supernovus left
|
|||
cxreg | has rakudo or parrot got any code coverage tools? | 17:52 | |
17:55
eternaleye joined
17:57
envi^home left
17:58
ash_ left
17:59
lucs left,
ash_ joined
18:01
eternaleye left
18:03
lestrrat is now known as lest_away
|
|||
colomon | rakudo: say sin(-0.523598775603156.Rat) | 18:06 | |
p6eval | rakudo ad2afb: OUTPUT«too many positional arguments: 3 passed, 1 expected in 'prefix:<->' at line 3637:CORE.setting in main program body at line 11:/tmp/UfE2n2xGTP» | ||
colomon | errrrr.... that was unexpected. | 18:07 | |
rakudo: say -0.523598775603156.Rat | |||
p6eval | rakudo ad2afb: OUTPUT«too many positional arguments: 3 passed, 1 expected in 'prefix:<->' at line 3637:CORE.setting in main program body at line 11:/tmp/YsSMrr9vK6» | ||
colomon | rakudo: say -0.523598775.Rat | ||
p6eval | rakudo ad2afb: OUTPUT«-0.523598775» | ||
colomon | arrrrrggggghhhhhh! | ||
ash_ | rakudo: say 1.5.Rat, 1.5.Rat.perl | 18:09 | |
p6eval | rakudo ad2afb: OUTPUT«1.53/2» | ||
ash_ | (thats 1.5 and 3/2) | 18:10 | |
[Coke] | jnthn: just upgrad to IO::Prompter. :) | ||
ash_ | rakudo: say -0.523598775.Rat.perl | ||
p6eval | rakudo ad2afb: OUTPUT«-20943951» | ||
[Coke] | cxreg: parrot provides a callgrind output. | ||
which you might be able to use for that sort of thing. | |||
colomon | ash_: ????? | 18:11 | |
18:11
ziegenberg joined
|
|||
ash_ | i have no idea what happened there colomon | 18:11 | |
rakudo: say -0.12.Rat.Perl | |||
p6eval | rakudo ad2afb: OUTPUT«Method 'Perl' not found for invocant of class 'Rat' in main program body at line 11:/tmp/sezFh34lWN» | ||
ash_ | rakudo: say -0.12.Rat.perl | ||
p6eval | rakudo ad2afb: OUTPUT«-3» | ||
ash_ | ... | ||
18:11
ziegenberg left
|
|||
ash_ | thats odd | 18:12 | |
colomon | more than odd, it's insane | ||
ash_ | rakudo: say 0.12.Rat.perl, ' and ', -0.12.Rat.perl | ||
p6eval | rakudo ad2afb: OUTPUT«3/25 and -3» | ||
ash_ | is... it the negative? | ||
colomon | it is | 18:13 | |
rakudo: say 0.12.Rat.perl, ' and ', (-0.12).Rat.perl | 18:14 | ||
p6eval | rakudo ad2afb: OUTPUT«3/25 and -3/25» | ||
18:14
eternaleye joined
|
|||
colomon | ash_++ | 18:14 | |
betting this is a STD bug | |||
ash_ | is the precedence of - off? | ||
18:14
tadzik joined
|
|||
colomon | ash_: I think the precedence of - doesn't make sense in this case. | 18:15 | |
ash_ | true, since its a constant number | ||
the negative should be part of the constant | |||
pmichaud | (whew) survived my talk :-) | 18:17 | |
18:17
patspam joined
|
|||
ash_ | how'd it go? | 18:18 | |
PerlJam | pmichaud: they didn't throw stuff at you? | ||
pmichaud | I guess it went okay. Talks after lunch are always iffy. :) | ||
PerlJam: nobody threw anything at me... at least not directly. I did get some questions. :) | 18:19 | ||
PerlJam | pmichaud: Did someone ask when the official Perl 6 will be released? ;) | ||
colomon | seemed to go fine to me. | ||
pmichaud | I needed a slide that also said "Rakudo" !eqv "Perl 6" | ||
(will add that now) | |||
18:19
eternaleye left
18:20
lucs joined
|
|||
jnthn | pmichaud: I'm sure you did better than just surviving. ;-) | 18:22 | |
colomon | #phasers in 38 minutes? | ||
jnthn | colomon: Yes | ||
ash_ | is #phasers the same time as #ps? | 18:23 | |
jnthn tries to decide whether to have Greece - Argentina or Nigeria - South Korea on. | |||
18:23
jaldhar left
|
|||
pmichaud | 18:19 <PerlJam> pmichaud: Did someone ask when the official Perl 6 will be released? ;) | 18:25 | |
cxreg | [Coke]: cool. how about debugger stuff, anything in the works? | ||
pmichaud | PerlJam: No. | ||
(nobody asked) | |||
PerlJam | YAPC++ smarter than your average crows. | 18:26 | |
er, crowd | |||
[Coke] | cxreg: there is a parrot_debugger. but pretend I didn't say that. | ||
cxreg | [+] @crows / @crows | ||
[Coke]: lol, gotcha | 18:27 | ||
i was thinking of asking jjore to get involved on that, since he's so into runtime debugging (Enbugger, etc) | |||
18:28
kensanata joined
|
|||
avar | I hope some of the Perl 6 talks will be made available for us not at YAPC | 18:39 | |
PerlJam | avar: we talk about Perl 6 all the time here, what more do you need? ;) | 18:41 | |
colomon | PerlJam: in one word: Damian | 18:42 | |
pmichaud | avar: my slides are online. | ||
pmichaud.com/2010/pres/ | |||
I'm going to figure out how to get audio working on my notebook and turn my presentation(s) into vidcasts | 18:43 | ||
PerlJam | colomon: so ... get him on here! :) | ||
colomon | Patrick's NQP talk was also stuff that I hadn't quite manage to put together entirely from over a year hanging out here. | ||
avar | yah, but slides are only 1/10 of the thing :) | ||
colomon | PerlJam: I just assumed if he wasn't here, he had a good reason. | ||
avar | Anyway, I hope video gets online this time around. Somehow YAPC always gets recorded and somehow it never makes it online afterwards | 18:44 | |
colomon | but his talk contained several very nice p6 ideas that I certainly wasn't familiar with. | ||
PerlJam | colomon: perhaps that's why he stays away. | ||
pmichaud | avar: yes, that's been my experience also. That's why I'm trying to find ways to ge the videos online myself, even if it's just slides+audio (times) | ||
afk for a bit... snack. | 18:45 | ||
avar | pmichaud: yay | ||
Still, hoping for the rest too.. | |||
PerlJam | colomon: If he hung out here with us, his wacky-aweseome ideas would be diluted with all of our mediocre ones :) | ||
colomon | PerlJam: or the ideas breeding would go singular... | 18:46 | |
PerlJam | colomon: Have you seen Damian's talk where he implements variables in Perl that travel backward through time? | 18:48 | |
(that's probably not the best description, but you get the gist of the awesomeness I think) | |||
18:48
alc joined
|
|||
colomon | PerlJam: I haven't, no. | 18:49 | |
sorear | kolibrie: It's pretty boring, except for the utter deviousness of LazyMap | 18:50 | |
18:52
TiMBuS left
18:53
patspam left
18:54
M_o_C joined
|
|||
PerlJam | colomon: I think it's this one technocation.org/node/571/play | 18:54 | |
colomon | PerlJam: thanks! | 18:55 | |
18:55
bphillips left
|
|||
avar | heh, my super-minor patch landed me on pmichaud's slides: pmichaud.com/2010/pres/yapcna-rakud...ide30.html | 18:56 | |
18:56
alc left
|
|||
avar | (rewording a single error message) | 18:56 | |
18:57
masak joined
|
|||
masak | #phasers in 2? | 18:58 | |
sorear | TimToady: So, uh, what've you been saying about me? D: | 18:59 | |
masak | yay! both my talk submissions to YAPC::EU were accepted! \o/ | ||
18:59
colomon left
|
|||
jnthn | #phasers! | 19:01 | |
sorear | pmichaud: Is Kiev 30 or 31? Your slides say 31 on p31 and 30 on p32 | 19:04 | |
er, 31 on p30 | 19:05 | ||
masak | it's #30. | 19:06 | |
19:09
thepler joined,
alester joined
19:12
dju left
19:17
dju joined
19:18
dju left
19:19
dju joined
19:23
eternaleye joined
19:26
colomon joined
19:30
Mowah left
|
|||
jnthn | rakudo: sub s { try { return 1; CATCH { return 2 } } }; say s | 19:31 | |
p6eval | rakudo ad2afb: OUTPUT«Null PMC access in type() in main program body at line 11:/tmp/UtCcOH4qgy» | ||
ash_ | rakudo: sub s { try { return 1; } }; say s; | 19:33 | |
p6eval | rakudo ad2afb: OUTPUT«Null PMC access in type() in main program body at line 11:/tmp/lqZeTu1GCI» | ||
ash_ | rakudo: sub s { try { return 1; } }; say s().WHAT; | 19:34 | |
p6eval | rakudo ad2afb: OUTPUT«Null PMC access in find_method('WHAT') in main program body at line 11:/tmp/GwMtlRzb9w» | ||
19:39
ash_ left
19:40
eternaleye left
19:46
snearch joined,
gbacon left
19:47
gbacon joined
19:48
clintongormley left
19:50
eternaleye joined
|
|||
moritz_ | rakudo: say ('x' xx *).WHAT | 19:51 | |
p6eval | rakudo ad2afb: OUTPUT«List()» | ||
19:54
cygx left,
colomon left
19:56
s1n left
19:57
cono joined
20:05
wolveria1 joined,
wolveria1 left,
Psyche^ joined
20:06
[Coke] left
20:09
Patterner left,
Psyche^ is now known as Patterner,
ejs joined
|
|||
masak | I can't express how great it is to work with pls. it's what proto should have been. :) | 20:10 | |
moritz_ misses a t/ folder in the pls branch | 20:12 | ||
20:12
M_o_C left,
colomon_ joined
|
|||
moritz_ | wait | 20:12 | |
I only read its log messages, not checked it out | |||
better :-) | 20:13 | ||
masak | there's a t/ folder, I assure you :) | 20:14 | |
moritz_ | yes, found it | ||
perl6 t/subcommands/fetch.t | |||
===SORRY!=== | |||
A method named 'state-of' already exists in class 'App;Pls;Core'. It may have been supplied by a role. | |||
is that expected? | |||
masak | no. | 20:15 | |
masak tries | |||
not getting that here :/ | |||
moritz_ | oh | ||
masak | let's compare Rakudo builds. | ||
moritz_ | has App::Pls::ProjectsState $!projects handles <state-of>; | 20:16 | |
my rakudo has 'handles' | |||
masak | I *think* mine does, too. | ||
20:17
cj left
|
|||
masak | rakudo: class A { method foo { say "OH HAI" } }; class B { has A $.a handles <foo> }; B.new.foo | 20:17 | |
p6eval | rakudo ad2afb: OUTPUT«Method 'foo' not found for invocant of class '' in <anon> at line 844:CORE.setting in main program body at line 11:/tmp/M5czkghJoC» | ||
masak | should that work? | 20:18 | |
ah, maybe typed attrs aren't in place yet. | |||
moritz_ | maybe you should init $.a | ||
masak | rakudo: class A { method foo { say "OH HAI" } }; class B { has $.a handles <foo> }; B.new(:a(A)).foo | ||
p6eval | rakudo ad2afb: OUTPUT«OH HAI» | ||
20:18
cj joined
|
|||
masak | right. my local Rakudo does that too. | 20:18 | |
in fact, I ran 'make install' this morning. | 20:19 | ||
moritz_ | rakudo: class A { method foo($X) { say "OH $x" } }; class B { has $.a handles <foo> }; B.new(:a(A)).foo('HAI') | ||
p6eval | rakudo ad2afb: OUTPUT«===SORRY!===Symbol '$x' not predeclared in foo (/tmp/HTtuCxEQAE:11)» | ||
moritz_ | rakudo: class A { method foo($x) { say "OH $x" } }; class B { has $.a handles <foo> }; B.new(:a(A)).foo('HAI') | ||
p6eval | rakudo ad2afb: OUTPUT«Too many positional parameters passed; got 2 but expected 2 in <anon> at line 843:CORE.setting in main program body at line 11:/tmp/w6fyMZFrKC» | ||
masak | my perl6 executable is from 14:09 today... | ||
masak submits rakudobug | 20:20 | ||
moritz_ | that's what I get in pls when I remove the explicit method | ||
masak | moritz_: but why do we get different results in the first place? | ||
moritz_ | no idea | ||
my rakudo is pretty recent, also from today | |||
masak | what time? | 20:21 | |
moritz_ | how do I find out? :/ | 20:22 | |
masak | ls -l `which perl6` | ||
moritz_ | I'll just install HEAD | ||
masak | me too. | ||
moritz_ | same result | ||
masak | that was fast! | 20:23 | |
moritz_ | it was built already | ||
masak | ok, give me a... couple of minutes. | ||
I don't suppose Parrot versions make a difference here. | |||
Updating 1277e18..ad2afb5 | 20:24 | ||
it just pulled in a few changes in src/core/Cool-str.pm | |||
this shouldn't affect anything. | |||
I haven't seen evidence yet to explain the different outcomes we're seeing. | |||
moritz_ | masak: do you have uncommitted changes? | ||
or unpushed changes? | 20:25 | ||
moritz_ is at pls sha1 d26710db0ca2230b5cbfaa5a1b1637d530794b92 | |||
masak | certainly not. | ||
of those I also have none. | |||
masak checks | |||
that's the one. | 20:26 | ||
it's from over a week ago. | |||
moritz_ | it still lives in the proto repo, right? | ||
masak | aye, in the 'pls' branch. | 20:27 | |
moritz_ | github.com/masak/proto/tree/pls | ||
masak | nod. | ||
moritz_ | latest commit: d267 | ||
masak | same one as above. | ||
moritz_ | right | ||
are you *sure* you've puhed the pls branch? | 20:28 | ||
masak | the commit you're talking about is at the top of my 'git log' -- with that SHA1. | ||
moritz_ | so we have the same, week-old pls version | 20:29 | |
masak | oh! | ||
masak rebuilds pls | |||
I think this must be it. | |||
yep, now it fails. | |||
tricky! | |||
Rakudo-- | 20:30 | ||
masak-- | |||
moritz_++ | |||
thanks for reporting. | |||
masak fixes | |||
:( | |||
moritz_ | that's why I don't really like the default of installing .pir files | ||
removing the 'handles' should work | |||
masak | sure; just checking that's what I want to do. | ||
installing feels like a Very Good thing to do to code that doesn't exactly have a speed advantage to begin with. | 20:31 | ||
moritz_ | I know | ||
and still you have to compare it to the developer time spent tracking these opaque bugs from outdated .pir files | 20:32 | ||
masak | I think I want to remove the method with the RAKUDO comment instead. trying that. | ||
moritz_ | then you'll hit the error I've demonstrated above | ||
masak | moritz_: maybe the Rakudo executable should compare its own timestamp against the .pir file as well. | ||
moritz_: oh :( | 20:33 | ||
adding another RAKUDO comment, then. | |||
jnthn | masak: I think you've just hit the old bug where type ojbect in attribute + handles somehow doesn't quite work out. | 20:35 | |
I found it in RT when doing handles recently, but didn't get to the bottom of it yet. | 20:36 | ||
moritz_ | I don't understand why handles with arguments doesn't work | ||
jnthn | moritz_: ? | ||
moritz_ | rakudo: class A { method foo($x) { say "OH $x" } }; class B { has $.a handles <foo> }; B.new(:a(A)).foo('HAI') | ||
masak | jnthn: but there's not a type object in the attribute... | ||
p6eval | rakudo ad2afb: OUTPUT«Too many positional parameters passed; got 2 but expected 2 in <anon> at line 843:CORE.setting in main program body at line 11:/tmp/bIDEEbBUUX» | ||
jnthn | rakudo: class A { method foo($x) { say "OH $x" } }; class B { has $.a handles <foo> }; B.new(:a(A.new)).foo('HAI') | 20:37 | |
p6eval | rakudo ad2afb: OUTPUT«Too many positional parameters passed; got 2 but expected 2 in <anon> at line 843:CORE.setting in main program body at line 11:/tmp/RRti3FKKRF» | ||
jnthn | oh. | ||
masak | it's an instantiated object. | 20:38 | |
masak goes looking for the alleged dupe | |||
jnthn | rakudo: class A { method foo($x) { say "OH f**k" } }; class B { has $.a handles <foo> }; B.new(:a(A.new)).foo | ||
p6eval | rakudo ad2afb: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in 'A::foo' at line 11:/tmp/Yk3oKm9kX1 in <anon> at line 844:CORE.setting in main program body at line 11:/tmp/Yk3oKm9kX1» | ||
jnthn | rakudo: class A { method foo() { say "OH f**k" } }; class B { has $.a handles <foo> }; B.new(:a(A.new)).foo | ||
p6eval | rakudo ad2afb: OUTPUT«OH f**k» | ||
jnthn | oh f**k indeed. | ||
masak | jnthn: found the one you meant. no, I'd say they are different. | ||
pls fix :P | |||
moritz_ | jnthn: that's probably why the PseudoArray tests are fudged out | ||
20:39
ash_ joined
|
|||
jnthn | moritz_: I'd thought that was something array or hashish. | 20:39 | |
But perhaps so. | |||
moritz_ | jnthn: maybe that too, but they are the first tests to use arguments | 20:40 | |
jnthn: I'll add another one that uses scalars and parameters | |||
kolibrie | sorear: yes, LazyMap is pretty cool/devious | ||
jnthn | moritz_: wow. | ||
20:40
Mowah joined
|
|||
kolibrie | sorear: and by-the-way, thanks for all your work on viv in the past few months | 20:41 | |
20:41
ashleydev left,
[Coke] joined
|
|||
masak | moritz_: fix pushed. all tests now pass here. | 20:41 | |
sorear | kolibrie: So what kinds of things are you saying about my work? :D | ||
20:42
ashleydev joined
|
|||
kolibrie | sorear: I have not put in anything specifically about you -- but I can if you give me things to say | 20:42 | |
jnthn | rakudo: class A { method foo(|$c) { say $c.perl } }; A.foo | 20:44 | |
p6eval | rakudo ad2afb: OUTPUT«\()» | ||
jnthn | rakudo: class A { method foo(|$c) { say $c.perl } }; A.foo(1) | ||
p6eval | rakudo ad2afb: OUTPUT«Too many positional parameters passed; got 2 but expected 2 in 'A::foo' at line 11:/tmp/TE5FBvA4r9 in main program body at line 11:/tmp/TE5FBvA4r9» | ||
jnthn | Golfed. | 20:45 | |
kolibrie | sorear: can you display SVGs? If so, I'll post an image/flow diagram of viv I made | ||
masak adds | |||
kolibrie++ | |||
sorear | kolibrie: can *I* display SVGs? | ||
What do I have to do with it? | 20:46 | ||
pugssvn | r31411 | moritz++ | [t/spec] test for RT #75966, delegation with parameters | ||
masak | sorear: I think he meant, like, your browser or something. :) | ||
sorear | ah | ||
then yes | |||
kolibrie | graystudios.org/talks/viv/viv_flow.svg | 20:47 | |
moritz_ | masak: works here too (pls) | ||
masak flies away, resolving other communication problems elsewhere | |||
jnthn has mental images of sorear pouring over an XML file, scribbling away with a pen in a notebook | 20:48 | ||
kolibrie | jnthn: in all the correct colors and fonts, too | 20:49 | |
masak | ...lots of pens... | ||
jnthn | ...the whole pot of pens.... | 20:50 | |
cxreg | a veritable island of pens? | ||
pugssvn | r31412 | moritz++ | [t/spec] tests for RT #69362, signatures of WhateverCode objects | ||
20:51
cdarroch left
|
|||
masak | moritz_: do I have your permission to make a copy of JSON::Tiny and put it in the proto/pls repo? | 20:52 | |
moritz_ | masak: yes | ||
masak | thanks. | ||
now might be a good time to switch away from faux YAML. | |||
20:54
colomon_ left
|
|||
pugssvn | r31413 | moritz++ | [t/spec] test for RT #75266, indexing array attributes with non-Ints | 20:55 | |
moritz_ welcomes our new packaging overlord | |||
masak | moritz_: there are some pretty interesting failures in t/04-roundtrip.t | 20:56 | |
moritz_: though I think I recall you writing about them in some bug report or other. | |||
not ok 2 - Rat | |||
# got: [16/5] | |||
# expected: [16/5] | |||
what's up with that? | |||
moritz_ | masak: I know. Many of them are related to backslash escapes not working char classes (the string tests) | ||
others to number types or array types - haven't figured it out yet | 20:57 | ||
emitting JSON is a bit fragile - but parsing is rather robust | |||
20:57
Mowah left
|
|||
masak | sounds good. | 20:57 | |
though I'll want to do both, so I should look out a bit too. | |||
jnthn has one of his talks accepted for YAPC::EU :-) | |||
20:58
ashleydev left
|
|||
masak | jnthn: \o/ | 20:58 | |
20:58
ejs left
|
|||
jnthn | Suppose I should book a flight there or something. | 20:58 | |
:-) | |||
20:58
ashleydev joined
|
|||
masak | good thinking. | 20:58 | |
BinGOs | I didn't think acceptance was until 1st July | 20:59 | |
moritz_ | rakudo: use Test; plan 1; is_deeply [16/5], [16/5], 'rats' | ||
p6eval | rakudo ad2afb: OUTPUT«1..1not ok 1 - rats# got: [16/5]# expected: [16/5]# Looks like you failed 1 tests of 1» | ||
moritz_ | I'd say testing bug | ||
jnthn | BinGOs: Maybe that's the acceptance deadline. :-) | ||
moritz_ | rakudo: say 16/5 eqv 16/5 | ||
p6eval | rakudo ad2afb: OUTPUT«0» | ||
masak | nod. | ||
cono | Hello Earth people! We would like to introduce to you our sci-fi stuff: Rakudo*! (some1 must start his talk at yapsi like that :) | ||
jnthn | fejl | ||
cono | it's not from our planet :) | 21:00 | |
21:00
slavik1 joined
|
|||
jnthn volunteers whoever gives the Rakudo status talk to dress up as an alien | 21:00 | ||
masak | but why? | 21:01 | |
rakudo: say 16/5 eqv 16/5 | |||
might that be why? | |||
cono | :D | ||
p6eval | rakudo ad2afb: OUTPUT«0» | ||
jnthn nervously checks what talk he submitted again | |||
moritz_ | masak: right | ||
cono | jnthn: you need to buy alien's dress :D | ||
moritz_ | rakudo: 16/5 ~~ Numeric | ||
p6eval | rakudo ad2afb: ( no output ) | ||
moritz_ | rakudo: say 16/5 ~~ Numeric | ||
p6eval | rakudo ad2afb: OUTPUT«1» | 21:02 | |
moritz_ compiles a possible fix | 21:03 | ||
masak | \o/ | ||
21:03
slavik left
|
|||
moritz_ | $ ./perl6 -e 'say 16/5 eqv 16/5' | 21:04 | |
1 | |||
BinGOs | jnthn: aha. checked my email both my talks accepted. | ||
( granted one is a lightning talk ). | |||
21:05
colomon joined
|
|||
masak | I should try to get a lightning talk in about Druid, as well. | 21:05 | |
ah well, let's let that be a reward if I get the other two talks done in time. (yeah right) | |||
dalek | kudo: 7b089e5 | moritz++ | src/core/operators.pm: infix:<eqv> for numeric types (did not work with rats) |
21:09 | |
cono | eqv - Numeric, cmp - Str ? | 21:10 | |
jnthn | BinGOs: Nice | 21:11 | |
BinGOs: Didn't hear about one of mine yet, but it's a longer, tutorial style one. | |||
cono | rakudo: my @c = gather { for 1 .. Inf { take $_ ** 2 } }; @c.batch(5).perl.say | ||
jnthn crosses his fingers that it's accepted too; it'd be fun to give. | |||
p6eval | rakudo ad2afb: ( no output ) | ||
cono | rakudo: my $c = gather { for 1 .. Inf { take $_ ** 2 } }; $c.batch(5).perl.say | ||
p6eval | rakudo ad2afb: OUTPUT«(1, 4, 9, 16, 25)» | ||
masak | cono: no. == - Numeric, cmp - Str. | ||
cono: eqv is for checking 'snapshot equivalence'. | |||
21:12
gbacon left
|
|||
cono | masak: like object equivalence? | 21:12 | |
kolibrie | sorear: I finally got to a slide where I had to mention you (about creating DEEP) | ||
BinGOs | jnthn: cool. | 21:13 | |
I've already booked hotel and flights. | |||
moritz_ | cono: eqv is general structural equivalence | ||
cmp is the three-way comparison op | 21:14 | ||
21:14
slavik joined
|
|||
masak | cono: no, the objects can be distinct but still give a True eqv comparison. | 21:14 | |
moritz_: oh right; I tend to get that one wrong. | |||
Perl 5 interference. :/ | |||
moritz_ | masak: the only remaining test failures in JSON are string escape (due to <[\x12]> being garbage), and one case where numbers types are not preserved | ||
masak | infix:<leg> is for Str. | ||
moritz_ | 4 vs 4/1 | 21:15 | |
moritz_ -> bed | |||
masak | moritz_++ | ||
21:15
kensanata left
|
|||
cono | thanks for explanation :) | 21:15 | |
21:15
Limbic_Region joined
|
|||
masak | I'll be commenting out the protesting tests, marking them with a TODO comment. | 21:15 | |
buu | Limbic_Region: Ok | ||
21:15
slavik1 left
|
|||
masak | (in the proto repo, that is) | 21:15 | |
Limbic_Region | heh | ||
pmichaud fixes his slide. | 21:16 | ||
cono | pmichaud: to earth and aliens? :D | ||
rakudo knows answer to life the universe and everything :D | 21:17 | ||
sorear | Are there any viable implementations of gather/take that don't involve continuations? | ||
masak | sorear: depends on what you consider to be a continuation, I think. | 21:18 | |
sorear: for example, I plan to make GGE have resumable subrules, by faking continuations enough. | |||
those won't be actual continuations, they'll just behave indistinguishably from them. | |||
sorear | right | 21:19 | |
the problem with gather/take, in sprixelland, is that it forces CPS transformation of basically every function | 21:20 | ||
because somebody could always do gather { &some-setting-fn := &take; yourfn; } | |||
masak | I'm not surprised. | ||
sorear | actually that would have to be := { take } because of lexoticness | ||
masak | I went down that road early in GGE development. | ||
sorear | (lexoticity?) | 21:21 | |
masak | my CPS-fu wasn't strong enough :/ | ||
sorear is not entirely happy with trampolines | |||
(and diakopter cautioned against relying on CLR tail calls) | 21:22 | ||
21:22
Guest17144 left,
Su-Shee left
|
|||
sorear | Is statement_prefix:<for> a wired in part of the syntax, or can it be rebound at rn time? | 21:26 | |
masak | my hacking time for tonight has run out. I have the beginnings of a pls proof-of-concept here, but I'll need another similar hacking session tomorrow to have something to publish. the half-time result looks satisfactory, though. | 21:28 | |
'night, #perl6 | |||
21:29
masak left,
kensanata joined
21:30
whiteknight joined
21:35
Guest17144 joined
21:36
Guest23195 left
21:37
patrickas joined
21:45
supernovus joined
|
|||
sorear | What happens as a result of class FakeNum { method ^does($tc) { $c === Num }; }; FakeNum.new + FakeNum.new ? | 21:47 | |
colomon | $tc? | 21:48 | |
sorear | type-constraint | ||
it's bound in the signature of ^does | |||
jnthn | sorear: You lie in response to does I guess. | ||
sorear: In terms of implementation, I hae that as putting the method into a role that gets mixed into the metaclass instance for the class FakeNum. | 21:49 | ||
21:49
snearch left
|
|||
jnthn | Thus overriding the does method of the metaclass - but only for the one instance associated with FakeNum. | 21:49 | |
sorear | jnthn: I'm actually asking about the last line, where the multi dispatcher calls &infix:<+>:(Num, Num) | 21:51 | |
with P6Opaque arguments of true-class FakeNum | 21:52 | ||
jnthn | Huh, I have to read the *whole* example. | ||
;_) | |||
sorear is implementing the lowest levels of a compiler and wants to know what his &infix:<+>:(Num,Num) should do when it gets wierd stuff that is nonetheless ~~Num | |||
jnthn | The typechecker does Num.ACCEPTS, but since Num is a class rather than a role it'll probably be more interested in isa than does. | ||
sorear | S12 states that Str $x means $x where { .^does(Str) } | 21:53 | |
jnthn | Then it's wrong. | ||
sorear | but s/does/isa/ if you want, the essential points remain | ||
jnthn | where and nominal types mean different things in the context of multi-dispatch, so it's a bit mis-leading. | 21:54 | |
But the actual check the binder does is Str.ACCEPTS($x) | |||
Though of course if we know full well that this would forward to .isa or .does we can inline it. | |||
sorear | class FakeNum { method ^isa($tc) { $c === Num }; }; FakeNum.new + FakeNum.new # what is &infix:<+>:(Num, Num) expected to do with arguments of unexpected representation? | ||
jnthn | sorear: Probably explode. | 21:55 | |
"oh noes you broke Liskov!" | |||
21:56
supernovus left
|
|||
jnthn | sorear: I can't see it doing anything smart here though. | 21:56 | |
I mean, what can it do... | |||
The worst bit is that the type checks hold up. | |||
sorear | Ok | 21:57 | |
jnthn | So I guess it fails when we try and access an attribute or some such. | ||
sorear | As an implementor I love hearing "explode" | ||
jnthn | The users hate it. ;-) | ||
sorear | Makes things much easier | ||
jnthn | I suspect that our most basic forms of the multis that we eventually reach that actually do the addition may well want to be the lowercase (native) types. | 21:58 | |
I think the smop folks decided that native types are narrower than everything, iirc. | |||
That may make a lot of sense. | |||
sorear | I asked TimToady yesterday exactly what native types were | 21:59 | |
He told me subset num of Num where { .defined && .HOW === Num.HOW && .REPR === Num.REPR } or something to that effect | |||
Limbic_Region | . o O ( and TimToady is well known for given exact answers ) | 22:00 | |
sorear | i.e. num is simply the 2^whatever most normal values of Num | ||
jnthn | sorear: Interesting. | 22:01 | |
sorear: I mean, it's a description of what their possibilities are. :-) | |||
I suspect that we can't quite use that definition literally though. | |||
But the .REPR === Num.REPR answers a bunch of questions I had, I think. | |||
TimToady | subset uint8 of Int where 0..255; # is what I said | ||
22:02
ash_ left
|
|||
jnthn | TimToady: For the valid range of values, perhaps so. | 22:02 | |
TimToady: But something is going to have to imply the "nativeness" too. | |||
TimToady: Even if it's just something that the compiler magically knows what to do with. | |||
TimToady | well, the repr may not be extended | 22:03 | |
jnthn | TimToady: e.g. I don't think the whole of native types is going to fall out by writing "subset uint8 of Int where 0..255;" in Rakudo. :-) | ||
And so forth. | |||
But it'd be lovely if it did. ;-) | |||
TimToady | you may add methods, but not change the format | ||
jnthn | TimToady: *nod* | ||
TimToady: Though to call a method the thing has to be boxed? | |||
TimToady: Or it's possible to call methods on unboxed things too? | |||
TimToady: Or, ideally it has to be boxed but we can optimize the boxing away in some cases? | 22:04 | ||
TimToady | sure, but you have to have a typed "container" | ||
jnthn | TimToady: So "something" has to map native types to boxed types, iiuc. | ||
TimToady | my int $i'm-an-int = 42; | ||
jnthn | I'm curious what that "something" looks like. | ||
pmichaud | or, your container has to be able to hold a value of a native type | ||
TimToady | $i'm-an-int.method knows it's an int | ||
or rather, an Int, from the method point of view | 22:05 | ||
jnthn | TimToady: Well, that's what I was trying to get at. | ||
TimToady: There's some relationship between Int and int. | |||
TimToady | the container is the abstract variable, and you can't take a ref to it | ||
(without boxing) | 22:06 | ||
the point is that native types are storage constraints, not real base types | |||
mberends | good localtime | 22:07 | |
jnthn waves to mberends from a city a little way south of him | |||
22:07
lest_away is now known as lestrrat
|
|||
jnthn | mberends: Long day? | 22:08 | |
diakopter | real base types are no more? | ||
mberends | jnthn: very. successful too :) | 22:09 | |
could we expect something like $i'm-an-int.bits to tell us 32 or 64 at runtime? | |||
TimToady | might have to be VAR($i'm-an-int).bits | 22:12 | |
diakopter | hm | 22:13 | |
jnthn | mberends: Cool | 22:14 | |
araujo | hi there guys, how it goes??? | ||
jnthn | mberends: I has to get up for a flight in like 5 and a bit hours or so. :-/ | ||
mberends | jnthn: not your usual schedule at all :( | 22:15 | |
jnthn | mberends: No...had 9am meeting today too. | ||
Ah well, no travel in July. I can schedule my days as I like then. | |||
Meetings aside. ;-) | 22:16 | ||
22:17
eternaleye left
|
|||
mberends | tomorrow my victi^Wstudents take exams and I'm largely free to hack | 22:18 | |
22:18
Guest17144 left
|
|||
jnthn | mberends: Yay! | 22:18 | |
sorear | I don't understant VAR particularly well | ||
jnthn | mberends: Though too bad I'll be in the UK and won't be able to join you. | 22:19 | |
sorear | I was under the impression that $foo *was* the container and it unboxed itself in scalar context | ||
which was how infix:<=> worked | |||
it doesn't assign a context on the LHS, so it got the container | |||
22:20
EvanCarroll left
|
|||
TimToady | they are threatening us with food & | 22:25 | |
22:27
colomon left
22:29
tadzik left
22:35
patrickas left
22:42
alester left
|
|||
sorear | TimToady: hmm. If the Perl 6 parser is written in Perl 6, it has to run before main program CHECK time. Is there any loophole I can exploit to make it optimize anyway? | 22:56 | |
jnthn -> attempted sleep -> flight -> stupidly overpriced train journey that'll probably be late -> family stuff, probably be about tomorrow evening | 22:57 | ||
23:01
Ross^ left
|
|||
cognominal | I am stuck with someone probably obvious to an exerciced eye : paste.lisp.org/display/111753 | 23:11 | |
accessing an element of the array returns the array itself. This probably because I am using $_ as a lhs but I did not find a way out. | 23:13 | ||
the number of the problematic line is 56 | 23:14 | ||
cognominal will golf his example | 23:16 | ||
$_= ["0123", ["4567"], "809"]; say $_.perl; $_= $_[1]; say $_.perl; $_=$_[0]; say $_.perl; | 23:23 | ||
I get ["0123", ["4567"], "809"] [["4567"]] [["4567"]] | |||
I want ["0123", ["4567"], "809"] ["4567"] "4567" | |||
I guess I found the way out. thx for the teddy bears. | 23:26 | ||
...wrapping the result in @( ) before assigning it to $_ | 23:27 | ||
cxreg | that still leaves the final assignment as ["4567"] afaict | 23:44 | |
23:47
macdaddy left
|
|||
cognominal | cxreg, sorry, I must go to bed. I am to tired to think straight | 23:49 | |
23:50
azert0x left
23:54
stepnem left
|