Camelia, the Perl 6 bug

IRC log for #perl6, 2010-06-22

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs