Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2005-07-19

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:01 stevan jdv79: re: leo's comment.
00:01 stevan he is wrong
00:01 stevan or rather his MRO is wrong
00:01 stevan I think
00:01 stevan but even still it does not matter if we match him or not
00:02 stevan parrot should not dictate things like method resolution order
00:02 stevan that should be a language level descision
00:02 stevan not a VM level
00:06 Khisanth so you can do OOP in PASM?
00:07 sili ugh
00:07 stevan Khisanth: yes, but why would you want to :P
00:12 stevan ok, responded to Leo
00:12 stevan I think Parrot might have it wrong
00:15 nothingmuch has joined #perl6
00:17 jdv79 from what i remember parrot can but you can easily top out with little to no performance issue
00:17 jdv79 opt rather
00:18 jdv79 i think the point of doing in the VM was cross lang integration or something
00:18 putter has joined #perl6
00:20 justatheory has joined #perl6
00:21 stevan jdv79: but perl5 uses preorder dispatch
00:21 stevan python uses pre-order with a little breadth first mixed in to handle odd MI cases
00:21 SamB has quit IRC (Connection timed out)
00:21 stevan Perl 6 will use C3, and Python 2.3 new style classes use C3
00:22 stevan There are subtle differences and wide open differences between all those, not to mention whatever Ruby/TCL/etc will do
00:22 stevan in the end, it probably wont be useful for anything other then Parrot
00:23 putter sigh.  we need to find a way to do bulk testing of p6.  my latest "well, there's the bug, now what?" is a trivial method calling another trivial method... which returns up the stack.  the recent dramatic progress has all been p5 based... and there's a reason for that.   ug.
00:23 jdv79 i think .NET dictates the OO system...
00:23 jdv79 i'm by no means studied on the subject though
00:24 SamB has joined #perl6
00:24 stevan jdv79: in a way yes, if you compile your code into the .NET ILASM objects
00:24 stevan but you dont have to do that
00:24 putter "returns up the stack" as in doesn't return to it's caller, but skips further up.
00:24 stevan you can use those to implement languages primatives instead
00:24 stevan and build your OO on top of it
00:24 jdv79 ah
00:24 stevan putter: do you mean "next METHOD"?
00:24 jdv79 no performance penalty?
00:25 stevan jdv79: of course there is
00:25 stevan but if you want a really fast runtime, you dont use a VM
00:25 stevan :)
00:26 stevan jdv79: my point is only that the behvaior of the metamodel is a language specific concept, and should not be dictated to by the VM
00:26 jdv79 i got you on that
00:26 putter no.  method re($s){$.rexp ~= $s} method do_subrule($n,$cap) { push(@$.names,$n); say "zog2"; ./re("((?P>$name))"); say "zog3"; $.cap_cnt++; }
00:26 jdv79 but the closer that can be approximated in the VM the more performant it will be, no?
00:27 stevan besides, Perl 6 is supposed to support at least 4 different dispatch orders; pre-order, breadth-first, ascendant and descendant
00:27 putter zog2 but no zog3.  do_subrule calls re, which never comes back.  control reapears further up the stack.
00:27 stevan jdv79: yes, that is true, but then your VM becomes either language specific, or language limiting
00:28 stevan putter: that looks broken to me
00:28 putter code or behavior?
00:29 stevan or rather, your code looks sane, but the behvaior you describe is not
00:29 joepurl_ is now known as joepuel
00:30 joepurl has quit IRC ("leaving")
00:30 joepuel has quit IRC ("leaving")
00:30 joepurl has joined #perl6
00:31 putter no.  it's like this every time I try to do something largish (order 1k lines).  has been for months, though the details vary.  sigh.
00:31 putter ok, any ideas on how to do bulk testing?
00:31 jdv79 so why not make it lang specific to give p6 an advantage then?
00:31 stevan putter: the OO model is broken right now relaly
00:32 jdv79 might as well let one lang use it than none, right:)
00:32 stevan jdv79: if we can convince Leo, then sure, why not
00:32 jdv79 could be cool
00:33 stevan jdv79: unfortunatly parrot only has one test for this kind of stuff, and it is the reverse ordering too
00:33 stevan so it is hard to say if the algorithm is right or not
00:33 putter yes.  I probably should have stuck to subs in package.  it's just such a pain though for this particular app.  ah well.
00:34 stevan putter: its the price of living on the cutting edge :)
00:35 knewt__ has joined #perl6
00:35 putter ok, re bulk testing, abstract specification seems... non-trivial.  so perhaps transliterate some language into p6.  compare behavior, and variation is bug in transliterator or p6.  some language with a large test suite or lots of code.
00:35 jdv79 stevan, if i understood it a bit more and had some more time...:(
00:36 putter re, cutting edge, true.
00:36 stevan putter: you mean like QuickCheck or LectroTest?
00:37 stevan jdv79: to be honest, I have little interest in Parrot. It's not my end of things :)
00:37 stevan and my time is limited as it is, damn $work is always getting the way
00:37 jdv79 yeah
00:38 stevan putter: the problem with specification testing is that you need a spec ;)
00:38 stevan at least a fairly static one :)
00:38 putter my guess is an invariant-based approach to difficult for the volume of testing I have in mind.  re spec, that too.
00:39 jdv79 but parrot is still the best shot at the most efficient backend, right?
00:40 stevan jdv79: not nessecarily
00:40 stevan p5, JS, etc. they will surely be slow
00:40 putter so either, transliteration, ruby or p5 or scheme -> p6, or parallel generation (make program describing tree, emit p6 and something else (rb? p5?), run both, and if they differ, either your emitter code or p6 is busted).
00:40 stevan however, Pugs -> PIL -> Haskell -> JHC might be pretty nice
00:41 jdv79 oh
00:41 stevan and compiling PIL to something like C-- would probably be really fast
00:41 putter can automagically randomly generate tree, and just leave it running.
00:42 stevan putter: so you mean bulk testing ASTs??
00:42 putter basically.
00:42 stevan putter: I am confused,  you seem to do that to me often :)
00:43 stevan so you want to verify that the basic AST and code structure has not changed from day to day
00:43 putter no... hmm, good exercise, I'll attempt to take it from the top.
00:44 stevan ok
00:44 * stevan gets mentally prepared
00:45 putter I had to backspace over half a line of text, just to say, lol :)
00:45 stevan :D
00:45 knewt___ has joined #perl6
00:46 putter p6 is buggy.  this has two flavors.  the many non-light-green areas of smoke.  and stuff which people think is working but isnt quite.
00:47 stevan stuff not quite tested enough basically
00:47 putter whether the latter is "intersting" in light of the former is an open question.  especially where the former basically means things need a rewrite.
00:47 putter yes.
00:47 stevan tests are no fun when they dont work
00:47 stevan and even less fun if they dont parse
00:47 putter but if one does want to pursue the latter, the question is how.
00:49 putter re fun, maybe we need to create a social dynamic which better encourages the contribution of failing tests.  perhaps make a point in the journal of mentioning the topmost contributors of faiing tests for the day?
00:50 stevan putter: well I think one problem is that we have a lot of tests
00:50 stevan and it is hard to see what is testing and whay is not
00:50 stevan I used to spend whole days just weeding out duplicate tests
00:50 putter re how, you need to get two things, some p6 code, and knowledge of what it _should_ do.
00:50 stevan but this was back when only had like 1000
00:50 knewt_ has quit IRC (Read error: 110 (Connection timed out))
00:51 putter good point.  how might that be improved?
00:51 stevan ahh, but what knowledge of what it __should__ do is not always available
00:51 stevan putter: to be honest, I think right now the best tests are modules, and modules with big test suites
00:52 stevan these exercise corner cases which are much too difficult to come up with in a plain old unit tests
00:52 stevan but once you discover these errors in your module, it is possible to ferret out the test into a single unit test
00:52 putter re test, I've wondered whether, if tests had uids, we could build a secondary structure "mumble is believed to work if tests xxx" are working.  but it's not clear it would be worth the hassle.
00:53 putter re modules, good point.
00:53 stevan putter: I know nothingmuch is working on a test run comparison tool
00:53 stevan so you can compare two runs of the test suite and see what happened
00:53 stevan I think he is going to be working on it this weekend at Gaal's hackathon
00:54 stevan at least I hope he is
00:54 stevan putter: the thing about pugs is that it is optimized for fun
00:54 stevan and the whole reason we have as many people as we do hacking away
00:54 stevan is that it is fun
00:54 stevan you can write a module, you can write a game, you can learn haskell
00:54 stevan etc
00:55 putter re bulk testing, what _should_ do, that's the challenge.  one approach is to have code in both p6 and some other language, where you have some reason to believe the codes should be equivalent, run them both, and compare behavior.
00:55 stevan its like one of those "interactive"science museums but for grownup programmers
00:55 stevan putter: that is a good idea. P5 would be a good first start
00:55 jdv79 the franklin institute is cool like that
00:56 stevan I did that with the File::Spec test suite, I had a p6 version and a p5 version
00:56 stevan jdv79: exactly...
00:56 stevan some see the Haskell,.. go ahead you can touch it...
00:56 putter was larry working on a p5 to p6 transliterator at the last hackathon...?? (a fuzzy memory)
00:56 stevan look over there, it is Type Theory!,... look how it sparkles when you talk about it
00:56 * justatheory types
00:57 stevan putter: he was working on some crazy tool which took the un-optimized P5 opcode tree and serialized it to XML
00:57 putter ok, on that thread, how could pugs be better optimized for fun?
00:57 stevan at least I think that was what it did
00:57 stevan putter:  it is not fun now :)
00:57 * mugwump sighs at lwall's insistence on a distinction between "internal" and "external" attributes
00:57 knewt__ has quit IRC (Connection timed out)
00:58 nothingmuch has quit IRC ("leaving")
00:58 * stevan thinks mugwump's sea-cucumber OO is kinda interesting :)
00:59 mugwump sea cucumber?  I mean, I know what it is - I've seen the Jackass movie
01:00 stevan a sea cucumber turns itself inside out when it is poked at
01:00 stevan it is a defense mechanism
01:00 stevan your objects seems to turn inside out (at least as I understood you)
01:02 mugwump It just seems to me to be the "right" way to do object attributes.  I can't see what good it does defining $.foo to be the normal form, other than simplifying compilation perhaps
01:02 mugwump it just seems overly imperative
01:05 nothingmuch has joined #perl6
01:08 stevan putter: I think your idea is good, but I think it will make much more sense when we move to PIL
01:08 stevan then we will have a consistent form which things will be compiled too
01:08 stevan and we can test against that
01:09 stevan but it is time for me to get off the computer, my eyes are starting to blur and burn :)
01:09 stevan &
01:15 jdv79 has quit IRC ("Leaving")
01:16 castaway_ has joined #perl6
01:17 putter night stevan &
01:21 putter has quit IRC ("Leaving")
01:22 Khisanth err "*** Undeclared variable: "$^a""? aren't you suppose to be able to just use those?
01:29 mugwump ?eval $^a
01:29 evalbot6 Error: Undeclared variable: "$^a"
01:30 mugwump ?eval { $^a }(1)
01:30 evalbot6 \1
01:30 mugwump ?eval { $^a }.arity
01:30 evalbot6 1
01:30 mugwump ?eval { $^a, $^b }.arity
01:30 evalbot6 2
01:30 mugwump ?eval { $^a, $^b, $^a }.arity
01:30 evalbot6 2
01:31 Khisanth hmm strange it stopped complaining all of a sudden
01:32 Khisanth sub infix:<+> { $^a - $^b } 1+2; gives that error but if I do sub infix:<+>($a,$b) { $a - $b } 1+2; and THEN use that it doesn't give an error
01:33 meppl has quit IRC (Read error: 148 (No route to host))
01:33 castaway has quit IRC (Read error: 110 (Connection timed out))
01:34 mugwump ooo, that would be a nice bug to test for
01:34 Khisanth this is with r5671
01:35 nothingmuch has quit IRC (Read error: 60 (Operation timed out))
01:44 pasteling has quit IRC (Client Quit)
01:45 pasteling has joined #perl6
01:46 jhorwitz has quit IRC ("Chatzilla 0.9.67 [Firefox 1.0.4/20050511]")
01:49 dudley stevan++ # Pugs-as-interactive-science-museum, heh
01:51 * dudley is being brutally educated by Pugs every day
02:09 Nattfodd has quit IRC ("Leaving")
02:09 justatheory has quit IRC ()
02:10 coral ?eval sub infix:<+>($a,$b) { $a + ($b * one(-1,1)) } 1+2
02:10 evalbot6 (no output)
02:10 coral woo
02:11 Darren_Duncan question on lightning talks ...
02:12 Darren_Duncan are they usually supposed to be a surprise to listeners, or is it okay to map them out in detail in a public discussion?
02:12 Darren_Duncan for example, if I do a writeup and nopaste it here in advance for feedback?
02:12 cventers has joined #perl6
02:12 coral that would not deviate from what happens in #perl frequently before yapc
02:13 Darren_Duncan so they hash out lightning talks there?
02:13 coral not necessarily
02:13 coral some people use their entire 30 minute talk as a surprise though
02:13 coral in the interests of privacy
02:14 Darren_Duncan in my case, I want to propose a lightning talk for OSCON this august, and thought I should get some advance feedback ...
02:14 obra Both are fine
02:14 coral sure
02:14 coral bonus points for thinking about it
02:14 Darren_Duncan I was going to practice it tomorrow evening in front of my local Perl Mongers, but thought I should get feedback here prior to that
02:14 Darren_Duncan it it is okay, then I plan to start here within the next few hours
02:15 coral the only person it could not be okay with would be you, unless you're contractually committed to secrecy
02:15 Darren_Duncan for topic, as a brief summary, I was going to introduce my database-using modules, 'Rosetta' et al
02:15 Darren_Duncan no problem there
02:15 coral i think discussing your talk ahead of time is super-keen and should be done more often
02:15 Darren_Duncan now since people like entertainment ...
02:15 Darren_Duncan I thought up for a gimick to perhaps give the talk backwards
02:16 Darren_Duncan as in, read each sentence forwards, but the sentences are in the reverse order, so there is a semblence of understanding
02:16 coral reverse the sentences two words at a time
02:16 Darren_Duncan for example, my very first statement, followed by just a few seconds pause, is "any questions?"
02:16 coral ok, that might be a bit weird
02:16 Darren_Duncan it saves me having to come up with an opener
02:17 Darren_Duncan I don't consider myself to be that much of a creative type, more of a just the facts, so that's the best I've come up with that I haven't known anyone else to do before
02:17 coral for your second slide, put a picture of a sardine can key and a partially opened can of sardines, replace each fish's head with a perl head
02:17 coral draw a big red arrow to the key
02:18 coral "what is this, you ask?  it's my opener!"
02:18 coral i would love to be there for that moment :)
02:18 Darren_Duncan that's a thought, though I expect to do this entirely without slides or props
02:18 Darren_Duncan as those can be a lot of work
02:19 Darren_Duncan but if I change my mind, I'll consider that idea
02:19 Darren_Duncan it also occurs to me that the talk actually wouldn't be too difficult to understand ...
02:20 Darren_Duncan because a lot of the details aren't too order dependent
02:20 coral heh!
02:20 Darren_Duncan but I can play with it a bit by first speaking generic sentences that would be fully understood if spoken later but can be ambiguous if spoken earlier
02:21 knewt_ has joined #perl6
02:21 Darren_Duncan eg, after "any questions", I can say "available natively for both perl 5 and perl 6"
02:21 coral lightning talks: got a social experiment? here's a captive audience for 300 seconds.
02:21 cwest seen autrijus
02:21 jabbot cwest: autrijus was seen 8 hours 26 minutes 17 seconds ago
02:21 cwest bummer
02:21 coral Darren: people will start yelling guesses after three sentences like that
02:21 coral maybe 1
02:21 Darren_Duncan that says its a program or service, but not which one ... people expect a lot of lightning talks to be about what they're working on
02:22 Darren_Duncan that is, unless someone in the audience recognizes me from the online world
02:22 Darren_Duncan we will be intro'd by the host by name, I assume
02:22 coral who is the host?
02:22 Darren_Duncan question: do lightning talk hosts introduce the topic, or just the person?
02:22 coral that could easily change.
02:23 coral i suspect you could have them introduce you with 'any questions?'
02:23 Darren_Duncan you mean, as in saying that's my name?
02:23 coral yes. then end with your name, followed by the talk name.
02:23 Darren_Duncan it could work out, actually; the host participates in the gimmick
02:23 coral or set the talk name to 'any questions?'
02:23 coral if they won't go willingly lead them forced down the path
02:24 Darren_Duncan my name won't be spoken until I've finished, and it will be by the host, saying "next up, we have Darren Duncan" or some such
02:24 mugwump he might even read the title of your lightning talk :)
02:24 Darren_Duncan so I'll have to call it "any questions?"
02:24 coral which conference?
02:25 Darren_Duncan OSCON 2005
02:25 Darren_Duncan Aug 1-5
02:25 coral gnat running it?
02:25 Darren_Duncan don't know
02:25 coral hope not, he seemed tired
02:25 Darren_Duncan I just assumed it made little difference who was running it; the audience would be about the same
02:25 coral oh, ha, it's mjd doing lightning talks
02:26 Darren_Duncan which means I should expect what?
02:26 coral let him know what you're up to and invite his participation. he's friendly, and on #perl elsewhere.
02:26 Darren_Duncan I should email him privately
02:26 coral www.plover.com
02:27 Darren_Duncan that web site features something on "gay skating"
02:28 Darren_Duncan but there's Perl stuff too
02:32 knewt___ has quit IRC (Success)
02:33 coral yep
02:36 Darren_Duncan fyi, when I originally wrote [email@hidden.address] about the possibility of doing a lightning talk at my very first conference, it was a guy named Geoff who replied.
02:37 coral geoff g.?
02:38 Darren_Duncan the reply was just from 'Geoff', no further footer; from email same as quoted
02:38 coral weird, ok
02:39 Darren_Duncan He said he'll be the one notifying speakers etc ... all this took place on May 9th of this year ... things may have changed since then
02:39 coral hmm
02:39 coral well, start with him
02:39 Daniel_Nee has joined #perl6
02:39 coral http://search.cpan.org/~rgeoffrey/
02:40 * coral & sleep
02:40 Darren_Duncan I'm thinking I will send a combined talk proposal plus request for host participation to all 3 addresses, that one, MJD, and the other you mentioned, [email@hidden.address]
02:43 Darren_Duncan it seems that some details changed; previously the deadline was the 26th, and now its the 22nd; the submission email address is now also osc-lt-2005-submit-perl@plover.com
02:44 hobbs has joined #perl6
02:48 sungxinwoo has joined #perl6
02:49 Darren_Duncan back in a bit ...
02:51 Daniel_Nee Dear Autrijus: As we planned, if Tai-Fong hits here on Monday, then we'll go to nanshan on the following day, so could you meet me at the office around 1:00 PM, thanks a lot.
02:52 Darren_Duncan 'zat a hurricane?
02:53 mja typhoon in taiwan
02:54 Maddingue has quit IRC (Read error: 110 (Connection timed out))
02:55 Maddingue has joined #perl6
03:01 Khisanth Daniel_Nee: no email? O_o
03:15 hobbs has quit IRC ("Leaving")
03:23 mja hi all, i'm looking at a relatively recent smoke test output ... most of the tests that are todo seem to be waiting on pugs support ... are there any tests that have yet to be written entirely?
03:23 mugwump plenty
03:24 mja any suggestions?  I'm awash in parrot/pugs information, and attempting to swim for a place where i can hopefully make a reasonable contribution
03:25 mja i'm a p5 guy mainly ... though i'll try anything
03:25 mugwump ok, well normally the thing to do is to start porting a module, then when you find something that doesn't work as you'd expect, write a test case for it based on the best information you can find in the synopses
03:25 mja that sounds reasonable
03:26 mja thanks. :)
03:33 saorge has quit IRC (Read error: 104 (Connection reset by peer))
03:38 Darren_Duncan has left
03:38 Darren_Duncan has joined #perl6
03:41 cwest seen autrijus
03:41 jabbot cwest: autrijus was seen 9 hours 46 minutes 43 seconds ago
03:49 saorge has joined #perl6
03:49 brentdax Any idea why DBI::st::fetch would stop working (can't find the method) but DBI::st::fetchrow_arrayref would be just dandy?
03:50 coral ew, fetch
03:50 coral hmm
03:51 coral is fetch a method of DBI or of DBI::st ?
03:51 brentdax I believe st, but I could be wrong.
03:52 mugwump oh no!  Hualien devastated by the 颱風... eye of storm passing just over Taipei... (http://xrl.us/gsnb)
03:52 brentdax Looks lke DBI::st.
03:52 coral ugh
03:54 mugwump sorry, just over south of taipei
03:56 Amnesiac has quit IRC ("Leaving")
03:59 mja has quit IRC ("sleep")
04:18 obra has quit IRC (brown.freenode.net irc.freenode.net)
04:19 obra has joined #perl6
04:26 ezra_ has joined #perl6
04:28 autrijus hey cwest
04:29 autrijus cwest: I'm about to run for $work -- but please typeahead :)
04:32 cwest autrijus: jsansvn6 bot needs to lookup the svn.openjsan.org hostname now, not openjsan.org
04:32 autrijus ok. still :81?
04:33 cm autrijus-san.
04:34 autrijus greetings cm-san.
04:34 cwest still, yes
04:34 cm how are the lambdas flowing?
04:34 autrijus cwest: there you go.
04:35 cwest 謝謝 -- my irc client sucks
04:35 cwest Those probably did not come out. Thanks though. :-)
04:35 autrijus cwest: it does :)
04:35 cwest ah, excellent
04:35 cwest can write them, just not read
04:37 autrijus cm: it's flowing well from all directions of iso, poly, apo, hylo, para, cata, ana
04:37 cm :)
04:37 autrijus cwest: most welcome :)
04:37 cm very morphistic :]
04:37 autrijus now I gotta run... bbiab. &
04:39 ezra_ is that in reference to "Programming with bananas, lenses and barbed wire"?
04:40 autrijus yes, and to origami programming in general
04:44 iblechbot has joined #perl6
04:48 ezra_ is "origami programming" just the use of higher-order functions?
04:50 cm i think it's specifically about folds & unfolds and variants
04:51 ezra_ dig it.
04:53 masak has joined #perl6
05:09 ezra_ has quit IRC ()
05:09 vcv has quit IRC (Read error: 104 (Connection reset by peer))
05:19 cm has quit IRC ()
05:36 svnbot6 r5688, masak++ | perl5/PIL2JS/README: minor grammar fix
05:41 Amnesiac has joined #perl6
05:44 justatheory has joined #perl6
05:50 Daniel_Nee has quit IRC ("Chatzilla 0.9.67 [Firefox 1.0.2/20050317]")
05:53 sungxinwoo has quit IRC (Read error: 104 (Connection reset by peer))
06:00 justatheory has quit IRC ()
06:05 sunym has joined #perl6
06:07 saorge has quit IRC (Read error: 110 (Connection timed out))
06:34 lightstep has joined #perl6
06:52 vcv has joined #perl6
06:54 dvtoo has quit IRC (Read error: 110 (Connection timed out))
07:05 larsen has joined #perl6
07:10 Aankhen`` has joined #perl6
07:11 Amnesiac has quit IRC ("Leaving")
07:15 jdv79 has joined #perl6
07:17 lightstep has quit IRC ("scrap your boilerplate!")
07:20 NitishP has joined #perl6
07:20 NitishP Hi all
07:20 elmex has joined #perl6
07:22 Aankhen`` has quit IRC ("Reboot (already :-o) [Time wasted online: 12mins 40secs]")
07:31 dvtoo has joined #perl6
07:32 iblechbot has quit IRC (Connection timed out)
07:40 masak NitishP: hi there
07:40 Aankhen`` has joined #perl6
07:44 Aankhen`` stevan, you around?
08:00 khisanth_ has joined #perl6
08:01 Khisanth has quit IRC (Read error: 110 (Connection timed out))
08:11 malaire has joined #perl6
08:19 osfameron has joined #perl6
08:35 nothingmuch has joined #perl6
08:36 lightstep has joined #perl6
08:43 NitishP has quit IRC (Connection timed out)
08:58 nothingmuch has quit IRC (Read error: 113 (No route to host))
09:15 nothingmuch has joined #perl6
09:15 vcv has quit IRC (Read error: 54 (Connection reset by peer))
09:16 elmex has quit IRC (Read error: 110 (Connection timed out))
09:27 elmex has joined #perl6
09:27 elmex has quit IRC (Client Quit)
09:27 elmex has joined #perl6
09:28 Darren_Duncan has left
09:54 * masak likes luke palmers mail about metrics
09:56 masak it makes sense to me thinking of classes as sets of their possible instances
10:05 masak and of derived classes as subsets
10:31 sunym has quit IRC ()
10:36 ipv6guru has joined #perl6
10:56 masak ingy: ping
10:58 vcv has joined #perl6
11:15 iblechbot has joined #perl6
11:15 vcv has quit IRC (Read error: 104 (Connection reset by peer))
11:15 svnbot6 r5689, autrijus++ | * Fix the subroutine-defaulting bug reported by philcrow:
11:15 svnbot6 r5689, autrijus++ |   the default expression for parameters should be evaluate
11:15 svnbot6 r5689, autrijus++ |   inside the subroutine's package and lexical pads.
11:58 kolibrie has joined #perl6
12:00 Arathorn is there any way to call class (rather than instance) methods in pugs yet?
12:00 Arathorn or in perl6, for that matter :/
12:00 * Arathorn gets lost in A12
12:02 QtPlatypus Classname.method
12:02 QtPlatypus Just like perl5
12:03 QtPlatypus well not just like perl5.
12:03 Arathorn oops - i mean, declare them rather than call them
12:03 Arathorn sorry
12:04 * Arathorn is looking for something like class Foo { state method staticmethod() { ... } }
12:04 Arathorn but can't find any non-instance methods anywhere in examples/, or referred to in the AESes
12:05 Arathorn or perhaps my brain has been permenantly addled by java
12:05 QtPlatypus I beleave its just.
12:06 QtPlatypus class Foo { method bar(Str $classname:) { ...}}
12:06 Arathorn ah, ok
12:06 Arathorn thank you :)
12:07 ipv6guru has quit IRC (Read error: 60 (Operation timed out))
12:07 Arathorn right, of course
12:08 Arathorn the word 'class' had triggered my java response and made me forget that it was still perl after all :)
12:08 QtPlatypus perl will still be perl.
12:09 cognominal has quit IRC (Remote closed the connection)
12:12 cognominal has joined #perl6
12:12 * Arathorn finds the Class Methods chapter in A12 and all is well in the world
12:13 QtPlatypus Was I correct?
12:19 * castaway_ predicts that perl will not still be perl :)
12:19 Arathorn well, as i understand it you get class-methods by forcing the declared type of the invocant to be a Class object (or derived from the Class object)
12:19 svnbot6 r5690, iblech++ | PIL2JS: Prelude::JS, pil2js -- (Hopefully) made it work with IE (can't check, though).
12:20 Arathorn so it's actually class Foo { method bar(Class $classname:) { ... } }
12:20 Arathorn s/\$classname/\$class/
12:21 QtPlatypus Arh.
12:21 Arathorn ?eval class Foo { method bar(Class $classname:) { say "baaa!"; } } Foo.bar();
12:21 evalbot6 baaa! bool::true
12:21 Arathorn a bit like that, i guess
12:22 stevan morning all
12:22 stevan Aankhen``: you rang?
12:22 Arathorn stevan: should class-methods work in the absence of the metamodel stuff being 'live' in pugs yet?
12:23 stevan Arathorn: actually I think the sig is more like method bar ($?CLASS $class:)
12:23 stevan Arathorn: class methods and instances methods are probably the same thing (like in P5)
12:23 stevan and MMD is just used to tell the diff
12:25 Arathorn right
12:26 Arathorn I was trying to quote from A12 under Class Methods, tho', where lwall sez:
12:26 Arathorn       To declare an ordinary class method, such as a constructor, you say something like:
12:26 Arathorn           method new (Class $class: *@args) { ... }
12:26 Arathorn       Such a method may only be called with an invocant that "isa" "Class", that is, an object of type "Class", or derived from type "Class".
12:26 Arathorn which made me think that 'Class' was indeed a special pre-defined, uh, object-definition
12:26 stevan ah, yes I see now. I suppose that should work too :)
12:26 Arathorn as per all the metalmodel fun & games
12:26 Arathorn gah, meta-model
12:27 stevan $?CLASS will be the current class object for the lexical class, so it just more specific I think
12:27 stevan Arathorn: yes, there will be a Class class :)
12:27 Arathorn okay
12:28 Arathorn how do class fields/members/variables work, then?  do we use state to declare them rather than has?
12:28 stevan Arathorn: the Class class is just the "bridge" between the meta-world and the user-world
12:28 cognominal has quit IRC (Remote closed the connection)
12:28 * Arathorn nods.
12:28 stevan Arathorn: currently the MetaClass holds all methods
12:29 stevan and each class has a single metaclass instance
12:29 stevan the Class has-a metaclass and sort of proxies all calls from the user-world to the meta-world
12:29 stevan class variables are just stored in the metaclass for right now
12:30 stevan which works since there is one metaclass for every class, it seemed a logical place to put them
12:30 Arathorn okay
12:32 meppl has joined #perl6
12:33 stevan Arathorn: as for how to declare the class variables, I think it is using either my or our within the class definition
12:34 stevan so class Foo { my $.class_foo; has $.instance_foo; }
12:34 Arathorn right
12:34 stevan "my" being private
12:34 stevan and "our" being public
12:34 * Arathorn is wading through the "Use of Attributes" bit of A12, which is about to come to it, i think
12:34 stevan yup
12:34 Arathorn It does however also say:
12:34 Arathorn It is, however, illegal to
12:34 Arathorn       refer to an instance attribute variable (that is, a ""has"" variable) from within a class method.  Class methods may only access class attributes, not instance attributes.
12:34 stevan Arathorn: some of A12 is wrong though, for instances the submethod stuff is a little wonky
12:35 stevan so always check on p6l to be sure
12:35 Aankhen`` Hi stevan.
12:35 Arathorn which presumably means you need to know when you're in the class-method rather than just falling into it through MMD
12:35 stevan Arathorn: yes, I agree, the MMD part is just how it is in Pugs currently (and I am just guessing on that myself)
12:36 Aankhen`` stevan: I had a request: could you please trim down the messages you quote?  As in, snip off everything except the relevant part? :-D
12:36 stevan the metamodel has a different dispatch table for the class methods and instance methods
12:36 stevan Aankhen``: sure, in where?
12:37 Aankhen`` Er... JSAN and P6 mailing lists?
12:38 stevan Aankhen``: sure, no problem.
12:38 Aankhen`` Thanks. ^_^
12:38 stevan anyone know where the parrot SVN is?
12:39 Aankhen`` One sec.
12:39 Arathorn svn.perl.org/parrot surely?
12:39 Aankhen`` https://svn.perl.org/parrot/trunk
12:39 stevan ah, thank you
12:40 Aankhen`` It would be a bad idea to check out the entire thing.  I suggest only checking out trunk/.
12:40 Arathorn stevan: reason for asking about the details of the OO stuff is in wondering if there's a hope in hell of calling/instantiating JS objects from iblech's PIL2JS stuff
12:40 Arathorn in its current form
12:42 stevan Arathorn: regular JS objects? or Perl 6 objects?
12:42 Arathorn regular JS objects
12:42 stevan Arathorn: you will have to ask iblech that, I am not sure
12:42 Arathorn fair enough
12:42 * Arathorn has a play anyway, now he knows how to create class methods/attributes(!)
12:43 stevan Arathorn: I am getting a nice book on metamodel stuff (hopefully) today, which has a detailed chapter on bootstrapping. Once I have the metamodel bootstrapped, then porting it to the various PIL backends will be much easier
12:44 Arathorn cool :)
12:44 stevan Aankhen``: I just need one test file in parrot actually :)
12:45 Arathorn stevan: just use http then: http://svn.perl.org/parrot/trunk/
12:45 stevan yup
12:45 malaire has quit IRC ("Chatzilla 0.9.68a [Firefox 1.0/20041107]")
12:46 stevan horray, Parrot now uses C3 and our MROs match :)
12:47 Arathorn woo :)
12:47 stevan anyone with PMC-fu is encouraged to convert any of the metamodel MRO and class-precendence-list tests to PMC
12:49 kungfuftr stevan++ # insane
12:56 Arathorn stevan: is there a way with the current metamodel stuff to dynamically add instance attributes to an object?
12:56 iblech has joined #perl6
12:56 iblech Arathorn: "reason for asking about the details of the OO stuff is in wondering if there's a hope in hell of calling/instantiating JS objects from iblech's PIL2JS stuff"
12:57 iblech Arathorn: You can already call native JS functions: JS::alert "hi"
12:57 meppl has quit IRC (Read error: 148 (No route to host))
12:57 iblech And $JS::document.write("hi") works, too
12:57 vcv has joined #perl6
12:58 iblech I'm currently refactoring the JS part of the JS prelude out of pil2js.pl, and will then try to make "use jsan:Foo" work :)
13:00 Arathorn iblech: cool - I'd seen the binding to native functions; I was wondering specifically about something like my $image = new JS::Image();
13:00 castaway_ ooh, jsan :)
13:02 cognominal has joined #perl6
13:03 Arathorn and critically how one would define one's own ECMAScript 2.0-style class
13:03 khisanth_ is now known as Khisanth
13:04 stevan Arathorn: currently no, because we do not track instances
13:04 stevan there is an issue with GC and that
13:04 Arathorn okay
13:04 stevan although it is possible it would work through autovivification right now
13:04 stevan but thats not a planned thing
13:04 Nattfodd has joined #perl6
13:05 stevan but eventually I would like to support that feature
13:12 nothingmuch moose!
13:12 svnbot6 r5693, fglock++ | Span.pm - fixed all warnings in tests
13:12 * nothingmuch gets some sanity by hacking forht
13:12 nothingmuch forth
13:12 * castaway_ grins
13:19 lightstep has quit IRC ("leaving")
13:27 mja has joined #perl6
13:27 svnbot6 r5694, rkhill++ | Added Win32 section to the install file
13:27 svnbot6 r5694, rkhill++ | Added check for Win32, vb7.0 bypass perl5 embed
13:29 jhorwitz has joined #perl6
13:32 Arathorn hm, is there any special twigil meaning for variables whose names begin with a _? (i.e. $_foo )?
13:32 meppl has joined #perl6
13:32 iblech No, $_foo is just a normal user variable
13:32 svnbot6 r5695, rkhill++ | Fixed error in checking PUGS_EMB
13:33 Arathorn ?eval our $foo = "Foo"; class Bar { method baz() { say $foo; } }; my $bar = new Bar; $bar.baz();
13:33 evalbot6 Error: Undeclared variable: "$foo"
13:33 ipv6guru has joined #perl6
13:33 Arathorn right
13:34 Arathorn do I have to use $*foo for a truly global global foo, in that instance, then?
13:35 Arathorn ?eval our $*foo = "Foo"; class Bar { method baz() { say $*foo; } }; my $bar = new Bar; $bar.baz();
13:35 evalbot6 Foo bool::true
13:35 * Arathorn does that, then
13:36 iblech If you use $*foo, $*foo will be visible in *all* namespaces. If you want a global $foo restricted to your own namespace (and subnamespaces), our $foo (without a special twigil) is fine
13:41 sunym has joined #perl6
13:41 svnbot6 r5696, autrijus++ | * Various, cosmetic, accessory file cleanup.
13:42 autrijus rehi \camels
13:43 autrijus iblech: tested with IE?
13:43 autrijus if not I can reboot to win32 and test
13:44 iblech autrijus: No, please reboot if it doesn't interrupt you too much :)
13:45 autrijus sure. give me a url?
13:45 iblech Oh, yes, sec
13:47 * castaway_ has an IE lurking if testing is needed (without rebooting)
13:47 autrijus oh good :)
13:47 iblech castaway_: http://m19s28.vlinux.de/iblec​h/stuff/not_perm/pil2js-demo/
13:47 iblech castaway_: And then 01-tap.t.html or even mandel.p6.html
13:48 castaway_ also various Operas.. what am I testing anyway? :)
13:48 iblech 01-tap.t.html should print some "ok 1", "ok 2", etc.
13:49 iblech mandel.p6.html should give you the Mandelbrot fractal :)
13:49 stevan autrijus: the metamodel and Parrot's MROs now match :)
13:49 iblech Oh, and you test the PIL -> JavaScript compiler
13:49 castaway_ I get:
13:49 castaway_ 1..10
13:49 castaway_ ok 1
13:49 castaway_ ok 2
13:49 castaway_ ok
13:49 castaway_ # comment
13:49 castaway_ ok 4
13:49 castaway_ ok 5
13:49 castaway_ ok 6 foo
13:49 castaway_ ok 7 # skip
13:50 castaway_ ok 8 # skip bar
13:50 castaway_ not ok 9 # TODO
13:50 castaway_ not ok 10 # TODO baz
13:50 castaway_ (oh, odd.. it pastes with newlines, but doesnt shows as such..)
13:50 iblech So it shows "1..10ok 1ok 2" etc?
13:50 autrijus stevan: wow :)
13:50 castaway_ with spaces: 1..10 ok 1 ok 2 ok # ..
13:50 autrijus stevan: you went to irc.perl.org #parrot?
13:50 autrijus stevan: or leo just fixed it magically?
13:50 stevan autrijus: no, on your journal
13:51 iblech castaway_: Ok, thanks much, fixing :)
13:51 stevan leo fixed it magically
13:51 stevan leo++
13:51 autrijus stevan++ leo++
13:51 * castaway_ tries mandel ..
13:52 castaway_ A script on this page is causing IE to run slowly ..
13:52 * castaway_ says no to abort and waits..
13:54 castaway_ now the CPU is getting warm..
13:55 castaway_ how long is it supposed to take?
13:55 iblech It takes approx. 60s here with Firefox 1.0.5
13:55 iblech (And 0.076s with perl5 :))
13:55 castaway_ Ah, finished.. but also all in one long line, so not all that pretty ,)
13:56 iblech Ok :)
13:56 castaway_ and about 2-3 mins if the channels timestamps are to be believed..
13:59 PerlJam has joined #perl6
13:59 sunym has quit IRC ("savIRC - http://savirc.sourceforge.net")
13:59 castaway_ 06-use.t.html doesnt produce any output at all
13:59 castaway_ ditto 07, the rest are all ok
14:01 iblech Yep, PIL2JS can't compile these two to JS yet
14:01 castaway_ Ok then
14:02 * castaway_ tries mandel with opera
14:05 cventers_ has quit IRC (Read error: 113 (No route to host))
14:06 cventers_ has joined #perl6
14:06 castaway_ heh, Opera has a timer: 3min40sec
14:06 castaway_ (and very pretty)
14:06 iblech :)
14:06 castaway_ also, 71 degC CPU ,)
14:07 autrijus iblech: Alias says http://openjsan.org/doc/t/th/theory/T​est/Simple/0.11/lib/Test/Builder.html
14:08 autrijus if you click on "Source"
14:08 autrijus there is a Test.Builder.prototype.beginAsync
14:08 autrijus that can workaround the "script taking too long" bug
14:09 iblech How so?
14:10 autrijus 21:59 < Alias_> The method used in asyncronous unit testing is to spam off a thread using onTimeout, and then rather have print modify the DOM directly
14:10 autrijus 22:00 < Alias_> So instead of document.write, you let the document.close first, and then inject bits of content at the end of $something
14:11 iblech Ah! I'll try that, thanks :)
14:12 autrijus np :))
14:18 iblech castaway_: Please reload 01-tap.t.html and see if the linebreaks are correct now :)
14:18 iblech castaway_: (http://m19s28.vlinux.de/iblech/stuff​/not_perm/pil2js-demo/01-tap.t.html)
14:18 Arathorn under IE, there are no linebreaks
14:19 justatheory has joined #perl6
14:19 iblech Arathorn: Probably the preludepc.js wasn't refetched from the server (cache)
14:19 Arathorn no, i decached (and i hadn't tried it before under IE)
14:19 iblech :(
14:20 Arathorn the problem is surely that you're terminating with \x0a
14:20 iblech Oooh! I see the problem
14:20 iblech .replace doesn't mutate the string inplace
14:20 Arathorn heh, that catches me out on java far too often :)
14:21 Arathorn oh, you're using print rather than say
14:21 Arathorn or even, say uses print.
14:21 Arathorn (weirdly enough)
14:23 Arathorn yay, that's fixed now
14:23 Arathorn oh, no it isn't
14:23 Arathorn <-- muppet
14:24 iblech Reload please :)
14:24 Arathorn there we go :)
14:24 Arathorn beautiful
14:24 iblech :)
14:26 wilx has quit IRC (Read error: 104 (Connection reset by peer))
14:29 svnbot6 r5697, iblech++ | * Pugs.Compile -- Added a comment explaining why the raw Exp of a PPos isn't showed.
14:29 svnbot6 r5697, iblech++ | * PIL2JS: Moved the JS part of the Prelude to libjs/PIL2JS.js.
14:29 svnbot6 r5697, iblech++ | * PIL2JS: pil2js.pl, jspugs.pl -- Sanitized options.
14:29 svnbot6 r5697, iblech++ | * PIL2JS: PIL2JS.js, Prelude::JS -- Fixed linefeeds not working correctly undef
14:29 svnbot6 r5697, iblech++ |   IE, thanks to Arathorn++ and castaway++.
14:29 iblech Ok, I'll try to make use jsan:Foo work now
14:30 Arathorn ?eval class Foo { has $.i; method init(Class $class:) { $.i="i" } method show(Class $class:) { say $.i } } Foo.init(); Foo.show();
14:30 evalbot6 i bool::true
14:30 Arathorn surely you shouldn't be able to write/read instance attributes from class methods...
14:33 elmex ?eval print "!\n"
14:33 evalbot6 Error: No compatible subroutine found: "&print"
14:33 elmex ?eval say "!\n"
14:33 evalbot6 !  bool::true
14:33 iblech elmex: print isn't available in evalbot
14:33 elmex hmm
14:33 iblech elmex: Fixing
14:35 svnbot6 r5698, iblech++ | evalbot/evalhelper.p5 -- Added &print.
14:35 wilx has joined #perl6
14:35 elmex ?eval "!\n"
14:35 evalbot6 '! '
14:36 iblech elmex: evalbot s:g/\n/ / the output first
14:36 elmex is evalbot loop-safe?
14:36 iblech elmex: Else somebody would ?eval "\n" x 1000
14:36 iblech ?eval while 1 {}
14:36 evalbot6 (no output)
14:36 elmex how does it work?
14:36 iblech ?eval my $fh = open "hi"
14:36 evalbot6 Error: No compatible subroutine found: "&Pugs::Internals::openFile"
14:37 QtPlatypus elmex: Most likely some sort of timeout.
14:37 elmex QtPlatypus: obvious
14:37 iblech elmex: Look at examples/network/evalbot/evalhelper.p5 -- RAM, CPU time, etc. are all limited
14:37 elmex ah, ok
14:37 elmex thx
14:38 cventers_ heh... evalbot is cool :)
14:38 iblech ?eval my $str = " " x 100000000000; $str ~= ""
14:38 evalbot6 \pugs: out of memory (requested 1048576 bytes)
14:38 iblech see :)
14:38 cventers_ does evalbot automatically run the latest pugs
14:38 cventers_ or does someone have to manually upgrade him
14:38 QtPlatypus ?eval my $str = " " x 100000000000; ""
14:38 evalbot6 ''
14:38 QtPlatypus I still can't work out how eval bot pulls that off.
14:38 castaway_ iblech: no line breaks now :)
14:39 castaway_ (sorry, $work was distracting)
14:39 iblech castaway_: Yep :)
14:40 iblech QtPlatypus: See examples/network/evalbot/evalhelper.p5 lines 16-18
14:40 QtPlatypus Ok
14:41 Arathorn also: shouldn't 'our'-scoped variables be accessible in methods of a class defined in the same scope?
14:41 iblech Arathorn: Yes
14:41 Arathorn ?eval our $foo="foo"; class Widget { method init() { say $foo } }; Widget.init();
14:41 evalbot6 Error: Undeclared variable: "$foo"
14:42 Arathorn :/
14:43 Arathorn would it be helpful for me to go through and write tests for Apoc 12 cases? or would it be stepping on someone's toes?
14:43 castaway_ tests++
14:43 castaway_ no reason not to have them IMO
14:45 iblech Arathorn: Please do so :) But check t/oo and t/packages for prior work
14:45 * Arathorn has just gone through t/oo, and nobody seems to have got their knickers in a twist over instance/class attributes/methods yet
14:45 * Arathorn looks at t/packages
14:47 Arathorn should this sort of thing go in t/[oo|packages] or t/pugsbugs?
14:47 cventers_ ?eval $?PUGS_VERSION
14:47 evalbot6 \'Perl6 User\'s Golfing System, version 6.2.8, July 13, 2005 (r5697)'
14:47 cventers_ whats up with the quoting on that string
14:47 iblech Arathorn: t/packages, I think
14:48 iblech cventers_: evalbot .perl()s all return values
14:48 iblech ?eval say $?PUGS_VERSION; 42
14:48 evalbot6 Perl6 User's Golfing System, version 6.2.8, July 13, 2005 (r5697) 42
14:49 cventers_ yeah.. but it starts with an escaped quote and ends with an unescaped one
14:49 cventers_ just seemed a little odd
14:49 cventers_ it would make sense if it didn't start with \
14:50 cventers_ well, except for strings in single quotes won't process escapes
14:50 cventers_ perhaps i'm just rambling; i'm new here
14:50 nothingmuch has quit IRC (Read error: 110 (Connection timed out))
14:50 iblech Ah, that's because the first \ is not an escape-\, but a take-a-reference-\
14:50 Limbic_Region has joined #perl6
14:50 cventers_ ah ha
14:51 cventers_ i've read most syn/apoc/exeges... ' isn't changing to mean " is it
14:52 cventers_ because in p5, 'User\'s' == "User\\'s"
14:52 iblech No, '\n' will still be a literal \ followed by a n
14:52 cventers_ or rather eq
14:53 iblech ?say 'User\'s'; ?1
14:53 iblech ?eval say 'User\'s'; ?1
14:53 evalbot6 User's bool::true
14:53 iblech Right...
14:54 iblech That might be a bug in Pugs. Not sure though
14:54 cventers_ tazcyclone evalbot # perl
14:54 cventers_ print 'User\'s';
14:54 cventers_ User's
14:54 cventers_ wow
14:54 cventers_ i never knew that was valid
14:54 cventers_ ive been doing perl since the 4 days
14:54 cventers_ i guess you learn something every day
14:54 iblech :)
14:55 Limbic_Region cventers_ I prefer to call it "making Love" and not "doing it"
14:55 cventers_ hahahahahaha
14:55 cventers_ the sex is always fresh with perl
14:55 cventers_ aite, work calls
14:56 Limbic_Region me too - just thought I would add a little levity
14:56 * Limbic_Region afk &
14:59 Arathorn ?eval $::foo="foo"; class Widget { method init() { say $::foo  } }; Widget.init();
14:59 evalbot6 Error: Undeclared variable: "$foo"
15:00 autrijus write a test please :)
15:01 * Arathorn is doing just so
15:01 Arathorn in t/packages/scope.t
15:02 autrijus I also suspect $::foo would need to be spelled $*foo or $main::foo now
15:02 Arathorn ?eval $main::foo="foo"; class Widget { method init() { say $main::foo  } }; Widget.init();
15:02 evalbot6 foo bool::true
15:02 autrijus I have no idea what $::foo would mean
15:02 Arathorn ooh
15:02 Arathorn in the context of evalbot or just in general?
15:02 Arathorn (it works fine with $*foo, fwiw)
15:02 autrijus in general.
15:03 autrijus look it up in AES04 and 03?
15:03 autrijus I can't seem to find a definition.
15:03 autrijus (or p6l it)
15:03 Arathorn should that work with plain ol' $foo, in your opinion, though?
15:03 Arathorn (if $foo is our'd)
15:03 autrijus ?eval our $foo;  class Widget { method init() { say $foo  } }; Widget.init();
15:03 evalbot6 Error: Undeclared variable: "$foo"
15:04 autrijus this should have worked
15:04 autrijus yes
15:04 Arathorn right - that was the test I was writing anyway
15:04 autrijus cool.
15:04 autrijus although I believe we had one for that
15:04 autrijus in t/pugsbugs/namespaces.t
15:04 autrijus feel free to merge or move it to packages/
15:05 Khisanth ack! the class declaration requires a ; at the end?
15:05 Arathorn wheeee... /me heads back into t/pugsbugs :D
15:05 autrijus ?eval our $foo;  class Widget { method init() { say $foo  D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D} } Widget.init();
15:05 evalbot6 Error:  unexpected "{" expecting trait, ";" or end of input
15:05 autrijus ?eval our $foo;  class Widget { method init() { say $foo  } } Widget.init();
15:06 evalbot6 Error: Undeclared variable: "$foo"
15:06 autrijus Khisanth: no it does not
15:06 autrijus that's just cosmetic
15:06 autrijus Khisanth: oh btw, $^x is usable only in bare
15:06 autrijus see 6.2.8 changelog
15:06 autrijus * Implicit variables like `$^a` now only work in bare blocks
15:06 Khisanth ok
15:06 autrijus that's always the case according to AES
15:06 autrijus and the misfeature was ruled incorrect in hackathon
15:07 Arathorn autrijus: there's no test in t/pugsbugs
15:07 autrijus (pugs misfeature, that is)
15:07 Khisanth btw, where does that our $foo; end up? is it suppose to be part of Widget or just accessible?
15:07 Arathorn i have to admit that this feels like it should be going in t/oo/class/ somewhere, though :/
15:07 autrijus Arathorn: there's not test in t/pugsbugs?
15:08 Arathorn nope :/
15:08 autrijus what is http://svn.openfoundry.org/p​ugs/t/pugsbugs/namespaces.t then.
15:08 autrijus Test::lives_ok({ $GLOBAL = 1 }, "'our' is lexically scoped, even across namespaces", :todo<feature>);
15:08 autrijus Arathorn: er, this is not a class problem; if you replace class with package or module the problem persists
15:08 autrijus so has nothing to do with oo
15:09 Arathorn ah - sorry, i misunderstood the lack of significance of the class { method {} }, then
15:09 Arathorn and if our is currently lexical rather than a package-style var, that explains all
15:10 autrijus our is currently package-style but _not_ lexical
15:10 autrijus our is currently a shorthand for writing qualified variables, and carries no scope in it
15:10 autrijus I do admit this is really broken :)
15:11 Arathorn (not as broken as my understanding of the problem, tbf ;)
15:11 autrijus Arathorn++ # nah :)
15:17 Arathorn so 'our' should behave by introducing the name into the current lexical scope - but then that name is just an alias for the package variable of the same name?
15:18 autrijus yup.
15:18 autrijus perldoc -f our
15:19 * Arathorn tries to look as if he doesn't have one foot still firmly stuck in 'use vars'
15:20 Khisanth but use vars is global ...
15:21 * stevan is very excited, Amazon says "The Art of the MetaObject Protocol" is "out for delivery"
15:21 stevan soon it will be mine,.. allll mine .... muhhahahahaha
15:21 Arathorn Khisanth: i know - unfortunately, i seem to have thought of p5's 'our' a bit too similarly to 'use vars'..
15:21 Arathorn more fool I.
15:24 autrijus stevan: ooh congrats
15:24 osfameron I've never had to use our
15:24 * autrijus bites the bullet and starts working on PIL dumping
15:25 Arathorn use vars is dead in p6, though, right?
15:25 stevan autrijus: good luck, may your work be fruitful and your PIL easy to swallow :)
15:25 autrijus aye.
15:25 * autrijus takes the Red PIL
15:26 Arathorn heh
15:26 * stevan looks up the rabbit hole and waits for autrijus to drop in
15:26 stevan you know, getting this book today means $work productivity is totally shot
15:27 autrijus it's nice to go back to books a short while during your extended vacation anyway :)
15:27 * autrijus refers to $work as "vacation", curiously
15:27 stevan :D
15:28 stevan maybe I will use it as the "carrot on the stick", for every bug I fix, I can read a few pages
15:30 Arathorn shouldn't 'our' in perl5 (and possibly perl6) treat namespaces a bit like lexical pads?
15:30 PerlJam Arathorn: no?
15:30 Arathorn perl -e 'package Foo; our $z = 10; package Bar; our $z = 20; print "$z\n"; package Foo; print "$z\n";' # so that you'd get 20,10
15:30 Arathorn seems very strange to let you re-our a variable in a new package, only to overwrite the old one, then
15:31 autrijus well, see lwall's post for some historical context:
15:31 autrijus http://www.perlmonks.org/?node_id=393672
15:33 PerlJam that post was the one that finally answered my "what was larry thinking?" question wrt our
15:34 cognominal this is a minor nitpick, but is there a reason why in pugs my is not a regular function?
15:34 cognominal ?eval say(my $a = 5)
15:34 evalbot6 Error: No compatible subroutine found: "&my"
15:34 PerlJam Until then I only saw how people were confused by "our" and that it really seemed to hinder rather than help.
15:35 autrijus cognominal: it is actually a major design deficiency in pre-hackathon pugs
15:35 QtPlatypus My can't be a regular function because it does stuff at compile time.
15:35 autrijus fortunately we figured out how "my" should work in PIL.
15:35 autrijus so this will get fixed for free
15:35 autrijus QtPlatypus: cognominal meant "inline"
15:35 * QtPlatypus nods.
15:36 cognominal I am not sure it is good style, quite the opposite, but I use that sometimes
15:37 autrijus it has its uses.
15:37 QtPlatypus Will given be treated like that as well?
15:37 autrijus no, given is &statement:<given>
15:37 QtPlatypus my $a=given { ... };
15:37 autrijus you can however demote any statement into an expression.
15:37 autrijus my $a = do given {};
15:37 autrijus it works now in pugs
15:38 autrijus lwall++ # braceless do
15:38 autrijus ?eval say do if 1 { 2 } else { 3 }
15:38 evalbot6 2 bool::true
15:38 autrijus :))
15:38 QtPlatypus Is that anouther change from the Bible, or just how pugs is handeling it?
15:38 autrijus this is part of the hackathon notes
15:38 autrijus which is still waiting for @Larry to merge to synopses.
15:39 autrijus * The `do` form is now taking a single statement instead of a block; what it does is turning the statement into an expression form, immediately evaluating it when the left hand side demands a value.
15:39 QtPlatypus I ment stament given.
15:40 autrijus er, it was always like that.
15:40 autrijus see S04.
15:42 cognominal ?eval  sub bop {} ; our &be = &bop; do do be bop do bop
15:42 evalbot6 Error:  unexpected "b" expecting "(", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
15:43 QtPlatypus Sorry mus thave miss read.
15:43 nothingmuch has joined #perl6
15:47 Arathorn so, has the stuff in S02 about $:: being the default namespace which is "searched from inner lexical scopes to outer, then from inner packages to outer" all dead now?
15:48 * Arathorn tries to xref with p6l
15:50 autrijus Arathorn: er.
15:50 autrijus that para is talking about $::()
15:50 autrijus not $::
15:50 autrijus dig bifference
15:50 Arathorn i thought $::() was just a way of interpolating vars to get at the namespace
15:51 Arathorn and that $foo="foo"; $::($foo) # would then be the same as $::foo
15:51 autrijus $::() is a special syntax
15:51 autrijus it does not overlap with $::foo
15:52 autrijus $::($foo) means $$foo in p5.
15:52 autrijus (symbolically
15:52 autrijus )
15:52 Arathorn oh.
15:52 masak has left
15:52 autrijus very confusing, but as we know, perl is all about the shift key :)
15:53 Arathorn so the only way you can get at your current symbol table then in p6 is by $?CURRENTSYMBOLTABLE::foo or some other twigilled special case?
15:53 autrijus huh?
15:53 Arathorn i'm trying to work out where package variables went, if you don't fully qualify their names
15:54 autrijus %OUR:: and %MY:: are symtable hashes still
15:54 autrijus as is %PACKAGENAME::
15:54 Arathorn right
15:54 autrijus so to get package vars, use
15:54 autrijus $OUR::foo
15:54 Khisanth and %PACKAGENAME:: would have everything that is in UR::?
15:55 autrijus Khisanth: that's the idea
15:55 Khisanth err %OUR :)
15:55 Arathorn that makes sense
15:55 Arathorn ah, i see %PACKAGENAME in S10 now
15:56 * Arathorn hopes that someone other that him will come up against these same problems & be enlightened by the logs of this one day...
15:57 Arathorn autrijus: thanks for handholding through it...
16:01 autrijus no prob, that's my (self-inflicted) job :)
16:04 Arathorn ?eval my $foo=42; say %MY::<$foo>
16:04 evalbot6 bool::true
16:04 Arathorn hm
16:06 autrijus currently only OUTER works iirc.
16:07 Arathorn ok.
16:09 Khisanth hehe
16:09 Khisanth btw, is there going to be a JS>P6 thing?
16:10 autrijus not my end of things, but cwest mentioned he'd like to work on it
16:11 autrijus JS->PIL will be indeed very cool
16:11 Khisanth wouldn't that basically get you JS on Parrot? :)
16:11 autrijus yes.
16:11 autrijus wouldn't that be nice? yes :)
16:12 PerlJam parrot everywhere would be nice if it happens.
16:12 Khisanth so pugs will become the mother of all source filters?! :P
16:12 autrijus the term is "compiler", sir
16:12 autrijus :)
16:13 Arathorn P6->PIL->JS is more fun in the short term though, as JS/ECMA engines have slightly better penetration (and stability) than parrot currently...
16:13 Khisanth actually I want C -> P6 :)
16:13 autrijus Arathorn: but otoh JS->PIL->P5 is highly exciting
16:13 autrijus more so than JS->PIL->Parrot currently
16:14 kolibrie until PGE is stabilized, is there an older PGE I should use, or a grammar2parsec utility?
16:14 kolibrie not that I know parsec yet
16:15 autrijus kolibrie: parrot 0.2.2 pge?
16:15 MrX has joined #perl6
16:15 * Arathorn continues to naively obsess over replacing actionscript with p6 and never having to worry about its comically broken typing again
16:15 autrijus leo-ctx5 pge should work as well
16:15 kolibrie I'm having problems with unicode - matches string, but returns wrong characters
16:16 autrijus oh, unicode. The Bad News Is Parrot Has No Unicode Support :-/
16:16 cognominal ouch
16:16 kolibrie never?
16:16 autrijus it's stubbed in
16:16 autrijus but currently you can't work with utf8 strings
16:17 autrijus so it's as good as nothing... I started working on it a while ago
16:17 kolibrie so, transcode to ascii before processing?
16:17 autrijus got as far as correcting the latin1 bias, but then I depleted my C-fu
16:17 autrijus kolibrie: er I don't think that'd work
16:17 kolibrie :(
16:17 autrijus the correct way is to fix parrot.
16:17 autrijus (or, to carry on putter's work, write an alternate rule runtime)
16:18 cognominal parrot was linked to that ibm unicode library so I thought it was worked out :(
16:18 MrX- has joined #perl6
16:18 autrijus cognominal: it was linked to the ibm unicode library and did not make any nontrivial use of it.
16:18 autrijus cognominal: it's there just to make things inconvenient ;)
16:18 MrX has quit IRC (Nick collision from services.)
16:19 autrijus anyway. parrot strings can be unicode and utf8 currently
16:19 autrijus just need to fill in the various
16:19 autrijus src/string_primitives.c:    internal_exception(UNIMPLEMENTED, "Can't do unicode yet");
16:19 autrijus places
16:19 autrijus grep for UNIMPLEMENTED in src/string*
16:20 kolibrie so, what's the best solution for extracting content from unicode document, for now?
16:20 kolibrie since I have no c-fu
16:20 autrijus pcre?
16:20 autrijus rx:P5//
16:21 kolibrie hmm, not nearly as pretty
16:21 autrijus write a pcre-based parser for Rules syntax
16:21 autrijus and then compile it to perl6
16:21 autrijus and eval"" it? :)
16:21 autrijus or compile it to higher order functions
16:21 Shachaf has joined #perl6
16:21 autrijus you can do a Perl6::Rules::Runtime in perl5 first and port that to p6
16:22 autrijus jeff pinyan started on it a while ago... ping him for progress?
16:23 kolibrie pcre is similar to perl5 regexes?
16:23 autrijus it's almost the same.
16:23 autrijus ...only somewhat more flexible and more robust
16:23 Arathorn is there a reason (other than legacy) why pugs appears to support $main::foo for the default namespace but not $*Main::foo ?
16:23 autrijus but you don't get to use embedded code aka (?{})
16:23 autrijus Arathorn: what is $*Main::foo?
16:24 Arathorn uh, me mistyping $::*Main::foo seemingly
16:25 Arathorn 'The default namespace for the main program is "::*Main"' from S10
16:25 autrijus oh wow. I totally completely missed that.
16:26 autrijus so it's Main not main?
16:27 Arathorn and prefixed with * to make it toplevel, seemingly
16:27 Khisanth maybe it's a typo in S10 :)
16:27 autrijus Khisanth: there are no other evidences
16:27 Arathorn to quote the whole line: 'The "::*" namespace is not "main".  The default namespace for the main program is "::*Main".'
16:27 autrijus but I tend to think it as not a typo
16:28 autrijus feel free to doublecheck it by mailing p6l though
16:28 autrijus Arathorn: write tests for it and I'll see that it's fixed
16:28 * autrijus mumbles something about the Synopses having a fractal structure
16:29 Arathorn yeah :/
16:29 autrijus the more you read into it the more there is to read
16:29 * Arathorn is still trying to work out whether you're meant to access it as $*Main::foo or $::*Main::foo or $Main::foo, tbh
16:30 autrijus ::*Main       is the package object
16:30 Khisanth $::*::foo? :)
16:30 Arathorn but I thought that $::anything had been deemed meaningless...
16:30 autrijus I don't see it mentioned anywhere
16:31 autrijus so I think p6l is the right way to go
16:31 * MrX- changes away reason from "I'm away" to "I'm away"
16:31 Arathorn also: 'As with an initial "::", the presence of a "::" within the name does not imply globalness (unlike in Perl 5).' seems pretty random
16:31 * autrijus looks at MrX- strangely
16:31 autrijus Arathorn: this is about inner packages.
16:32 autrijus grep for "inner" in A12
16:32 Arathorn so use Random::CP6AN::Module; say $Random::CP6AN::Module::foo is bogus - but $::*Random::CP6AN::Module::foo is okay, then
16:32 * Arathorn does so
16:32 MrX- has left "Leaving"
16:33 autrijus Arathorn: er, you are confusing the :: sigil (or dwigil) with the :: separator
16:33 ingy hola
16:34 autrijus yo ingy! ltns
16:35 * ingy has been on the lamb
16:35 autrijus lamb?
16:35 ingy running from the law
16:35 ingy incognito
16:35 autrijus wow. what did you do?
16:35 ingy under the radar
16:35 cventers_ ?eval say "perhaps you should speak through a proxy"
16:35 evalbot6 perhaps you should speak through a proxy bool::true
16:35 autrijus madly hacking on something?
16:36 autrijus ?eval "/nick evalbot7"
16:36 evalbot6 '/nick evalbot7'
16:36 autrijus ?eval say "/nick evalbot7"
16:36 evalbot6 /nick evalbot7 bool::true
16:36 autrijus sigh, iblech is too smart
16:36 Khisanth heh
16:37 Khisanth ?eval say "ACTION hops around"
16:37 evalbot6 ACTION hops around bool::true
16:37 autrijus ooh!
16:37 Khisanth hmm
16:37 ingy autrijus: I need to have a sitdown with you soon
16:37 autrijus ingy: sure. about what?
16:38 Khisanth can't get around that bool::true
16:38 ingy perl6
16:38 Arathorn that bit of A12 can't seem to decide whether $::*MyClass::foo or $::*::MyClass::foo would be the right syntax
16:38 ingy I need to give this little talk at oscon...
16:38 autrijus iblech: vulnerability discovered in evalbot6 :)
16:39 autrijus Arathorn: when you see $Foo::bar, it means looking up the ::Foo object, then fetch $bar from it
16:39 autrijus and ::Foo, just like %Foo, can be lexical or package scoped or global (%*Foo)
16:40 autrijus to restrict the lookup to ::*Foo you can't use the ordinary qualifying syntax, I think.
16:41 autrijus but I may be completely wrong
16:42 Arathorn so it sounds as if to get the variable $bar from the global packagename ::*Foo (or just *Foo if disambiguation is not necessary), you'd use $*Foo::bar then.
16:42 clkao autrijus: check mail about book link
16:42 autrijus that may be the case, yes.
16:43 autrijus $?Foo::bar means $?bar in Foo::
16:43 autrijus but $*Foo::bar can't mean $*bar in Foo::
16:43 autrijus because Foo:: will never contain a $*bar.
16:43 * Arathorn nods
16:43 autrijus so it muts mean $bar in *Foo::
16:43 autrijus this is very weird.
16:43 autrijus can you summarize and p6l it?
16:43 Arathorn in which case, I shall try to summarise and moot that to p6l, then write some tests for $*Main::foo rather than $main::foo, and then beg for a commit bit ;)
16:43 autrijus if it is the case I'd like it to be noted as such in S10
16:43 autrijus right. thanks!
16:44 autrijus heh, no need for begging. your email?
16:44 Arathorn [email@hidden.address] is prolly best :)
16:44 autrijus clkao: huh?
16:44 Arathorn (thanks :)
16:46 autrijus welcome aboard, son of Arassuil :)
16:46 autrijus (or was it Arador?)
16:46 Arathorn Arador ;)
16:46 clkao autrijus: rumour has it that there's rt/win32 download url in the book which is no longer alive
16:46 Arathorn for Arathorn II, at any rate, iirc
16:46 autrijus ah. so you're Arathorn II.
16:46 Arathorn hehe
16:48 Arathorn only infamous for his progeny and rather unfortunately getting shot through the eye by an orc...
16:49 autrijus clkao: rumour has it that I replied the mail, thanks
16:51 kolibrie how do I specify a long hex character: \x00a0 ?
16:52 autrijus theoretically, \x{00a0}
16:52 kolibrie ah, thanks
16:52 autrijus practically, it's not yet parsed. grep/write a test?
16:52 kolibrie ooo
16:52 kolibrie ok
16:55 autrijus ingy: ok... for this little oscon talk, do we arrange a SEE+Skype session or something?
16:55 Limbic_Region autrijus - I am officially back to being a lurker until further notice but wanted to mention something that you might want to consider
16:55 Limbic_Region a newbie was in the other day asking if there was a pugs specific mailing list - the usual response being to ask here, post to your journal, or p6.l or p6.c as appropriate
16:56 autrijus Limbic_Region: p6c is canonical
16:56 svnbot6 r5699, Stevan++ | Perl6::MetaModel - adding the Parrot MRO tests
16:56 Limbic_Region but when asking pugs internals related questions - it isn't likely appropriate for p6.c is it?
16:56 autrijus as mentioned in README and other places
16:56 autrijus it is p6c.
16:56 autrijus it's compiler internals
16:56 Limbic_Region ok - well then - /me is back to lurking
16:57 autrijus happy lurking :)
16:57 ingy autrijus: can we do it this weekend?
16:57 autrijus ingy: likely yes
16:57 autrijus ingy: or you can just interview me here
16:58 clkao hello ingy-san
16:58 ingy hi clkao
16:58 clkao does kwiki have a proper revisions plugin that works with svk?
17:00 ingy clkao: I don't know
17:02 svnbot6 r5700, iblech++ | * PIL2JS: We can't simply use a = b for binding, but have to use a.BINDTO(b),
17:02 svnbot6 r5700, iblech++ |   because a might really be the result of a function (i.e. &postcircumfix:<[
17:02 svnbot6 r5700, iblech++ |   ]>(@array, $idx) := $foo). Fixed.
17:02 svnbot6 r5700, iblech++ | * PIL2JS: Implemented &postcircumfix:<[ ]>, with correct binding semantics,
17:02 svnbot6 r5700, iblech++ |   both as rvalue (my $a := @a[$idx]) as well as lvalue (@a[$idx] := $a).
17:02 svnbot6 r5700, iblech++ | * PIL2JS: pil2js.pl properly detects whether PIL2JS.js was loaded or not now.
17:04 autrijus iblech: I will go about doing PIL-YAML dumping using a separate PIL module that represents revised... Emit.PIL will probably be the place for that (I think)
17:04 autrijus iblech: all others being equal, will you prefer YAML dump or Perl5 dump?
17:04 autrijus i.e. YAML::LoadFile or do""
17:04 iblech autrijus: YAML
17:05 autrijus because YAML is lovely?
17:05 autrijus however I'm thinking about the use of taguri
17:06 iblech Yep, and everything can parse YAML, while Perl 5 can only be parsed by perl5
17:07 autrijus currently it requires a !perl/@Foo for the loader to work
17:07 autrijus but !perl/ is probably not very welcomed in other languages
17:07 autrijus and YAML.pm does not support hooks into laternate taguri spaces
17:07 iblech Ah...
17:07 autrijus I _think_ I'll go with !perl/ for now on the ground of practicalness
17:08 autrijus and other language would just need to deal ;)
17:08 iblech Or pugs -PYAML --yaml-taguri=...?
17:09 autrijus yeah, maybe that. we'll do that when there's a demanc.
17:09 autrijus otoh you can also preproc the .yml
17:09 autrijus and expand the taguris.
17:09 autrijus but then, everybody else can do that too
17:09 autrijus so why not bias toward iblech :)
17:09 autrijus let's go with the most straightforward way then
17:09 iblech :)
17:21 autrijus iblech: is http://m19s28.vlinux.de/iblech/stuff​/not_perm/pil2js-demo/mandel.p6.html updated for IE?
17:21 svnbot6 r5701, Stevan++ | Perl6::MetaModel - begining the bootstrapping process, moving some methods from Perl6::Object::* into the Perl6::Object metaclass;
17:22 iblech autrijus: Yep
17:22 autrijus stevan: "bootstrapping"?
17:23 Aankhen`` has quit IRC (No route to host)
17:24 stevan yup
17:25 Gruber ?eval my @b = "foo".reverse;
17:25 autrijus as in representing Perl6::Object as a Perl6::Object?
17:25 evalbot6 ['foo']
17:25 stevan autrijus: not quite that far
17:25 autrijus oh. what, then?
17:25 stevan one sec $client is on the phone
17:26 autrijus sure. :)
17:27 rafl has joined #perl6
17:27 rafl Hello
17:27 svnbot6 r5702, tobez++ | Add tests for reverse applied to a literal string.
17:27 autrijus greetings rafl
17:29 rafl I'm not sure if I already said this: The Debian package needs to wait for ghc6 to use libgmp3c2 instead of libgmp3 because of the C++ ABI transition that currently happens in unstable.
17:30 autrijus is that going to need ghc team's help on ghc 6.4.1, or is it strictly a ghc maintainer's issue in the debian side?
17:39 osfameron has quit IRC (Read error: 113 (No route to host))
17:45 autrijus hm, we need a Emit.YAML.
17:45 autrijus fortunately syck has emitting support.
17:45 * autrijus praises libsyck
17:45 gaal has quit IRC ("goodbye")
17:53 nothingmuch has quit IRC ("leaving")
17:55 Aankhen`` has joined #perl6
17:59 cventers_ ?eval time
17:59 evalbot6 175111156.337077
18:01 autrijus cventers_: lwall is very firm on this.
18:01 autrijus (y2k being the epoch)
18:01 autrijus I forsee a great deal of confusion over it.
18:02 Arathorn right
18:02 * Arathorn escapes from $work long enough to spam p6l with inane ramblings about namespacen
18:03 * stevan escapes the deadly clutches of the $conference_call
18:03 stevan autrijus: ping (re: bootstrapping)
18:03 autrijus stevan: pong
18:04 autrijus so, there are lots of boots
18:04 autrijus and I'd like to understand which one are you strapping at :)
18:04 velcro has joined #perl6
18:04 stevan bascially defining the metamodel with the metamodel
18:05 autrijus can you define "define"?
18:05 autrijus i.e., elaborate on the "defining the metamodel" bit
18:05 stevan Perl6::Object is itself a Perl6::Object
18:05 autrijus right.
18:05 stevan and Perl6::Class is one too
18:06 stevan as is Perl6::MetaClass
18:06 autrijus 01:25 < autrijus> as in representing Perl6::Object as a Perl6::Object?
18:06 stevan etc etc
18:06 autrijus 01:25 < stevan> autrijus: not quite that far
18:06 autrijus 01:25 < autrijus> oh. what, then?
18:06 stevan but I am not there yet
18:06 autrijus I know
18:06 autrijus but you did mean that :)
18:06 stevan the first step is to move all the methods from Perl6::Object::* into the Perl6::Object metaclass
18:06 cventers_ autrijus: is there some way to tell time to give you the damn system epoch
18:07 cventers_ short of manipulating the number
18:07 stevan and cut Perl6::Object down to it's most minimal Perl5-ness
18:07 cventers_ with the number of seconds from 1970 to 2000
18:07 cventers_ :)
18:07 autrijus cventers_: I understand your frustration, and maybe time should take :epoch.
18:08 autrijus cventers_: necromancing this on p6l seems inevitable
18:08 autrijus so please still do it :-/
18:08 stevan autrijus: because on some level Perl6::Object is actually a Perl6::Object already, just not totally
18:08 autrijus sadly, we still have plenty of undead horses to beat around.
18:09 autrijus stevan: nodnod. so it's all about minimizing Prim that needs to support P6::Obj for a host env.
18:09 svnbot6 r5703, iblech++ | * PIL2JS: PIL2JS.js -- Added some comments.
18:09 svnbot6 r5703, iblech++ | * PIL2JS: PIL2JS.js, PIL::Nodes -- Named arguments!
18:09 svnbot6 r5703, iblech++ | * PIL2JS: pil2js.pl -- Unbreak --yaml-dump.
18:09 autrijus that will likely simplify a lot of my effort of porting it to Hs.
18:09 stevan autrijus: yes :)
18:09 autrijus named arguments!?
18:10 autrijus wow. nice
18:10 stevan the less we need to translate to Hs/JS/etc the better
18:10 autrijus yes, verily.
18:10 autrijus and the prim would be then burned into the Parrot ROM
18:10 autrijus I mean the VM
18:10 autrijus ;)
18:10 stevan autrijus: it is all about making your life easier :)
18:10 iblech cventers_: localtime(time) - Time::Epoch::UNIX?
18:10 autrijus and iblech's
18:10 stevan yes
18:10 autrijus putter's life is already maximally easy because you're doing it in p5 :)
18:11 stevan exactly
18:11 * autrijus likes the metaphor of burning MRO and other stuff into Parrot ROM
18:12 stevan I am hoping that by the time you have the PIL work done, I will have determined the smallest set of things needed for the metamodel
18:12 autrijus woot.
18:12 stevan and then you/iblech/* can put that minimal set into Hs/JS/* and I can port the metamodel to P6 :)
18:13 autrijus and we can _finally_ release 6.28.0 :)
18:13 stevan yes
18:14 * stevan needs TPF grant to hire programmers to do my $work, so I can finish the metamodel
18:14 autrijus rofl
18:14 svnbot6 r5704, fglock++ | Prelude.pm - fixed ceil/floor - "Implicit variables like $^a now only work in bare blocks"
18:15 autrijus surely you can submit a grant for metamodel
18:15 autrijus and then use that money to hire another programmer to do $work
18:15 autrijus fglock++ # indeed
18:23 * autrijus ponders "make jssmoke"
18:23 mr_ank has quit IRC ("Leaving")
18:23 sahadev has quit IRC ("Client exiting")
18:25 autrijus using Javascript.pm or Javascript::SpiderMonkey as the harness
18:27 Arathorn right - $*Main::foo shenanigans summarised & posted
18:27 * Arathorn scoots for frisbee
18:27 Arathorn is now known as Aragone
18:27 autrijus ooh. lovely
18:27 autrijus Aragone++
18:27 iblech autrijus: Would be really great, as I'm getting tired of manually compiling and running the sanity tests in $browser after every change :)
18:28 autrijus iblech: I wonder if we can just run things with external spidermonkey
18:29 autrijus you know, the bin/js
18:29 autrijus it has the "print" prim
18:29 autrijus so obviously we can output something that can be run with it
18:29 autrijus and then
18:29 autrijus pugs -BJS
18:30 autrijus will just invoke the whole chain
18:30 autrijus what do you think?
18:30 mr_ank has joined #perl6
18:30 autrijus (I think bin/js is the way to go)
18:30 stevan autrijus: quick sanity check if you please
18:31 autrijus stevan: you are insane, no need to check
18:31 stevan good
18:31 stevan I am removing the set_value and get_value from Perl6::Object and replacing it with _()
18:31 stevan sub _ {} having that fun global scope thing
18:31 autrijus yes.
18:31 stevan it is insane :)
18:32 autrijus are you abusing it?
18:32 autrijus *_ is always global
18:32 stevan define "abusing"
18:32 autrijus just like any other registers
18:32 autrijus abusing, as in using _() in a way that depends on it being always global
18:33 stevan yes, but I can always just export it with the other stuff I export form Perl6::MetaModel
18:33 stevan I am basically trying to move things which should be in the language, out of the metamodel
18:33 stevan and keep it all in one place
18:34 stevan things like SELF() and CLASS() and next_METHOD()
18:34 stevan that should really be language level things
18:35 autrijus yes.
18:35 autrijus so what is _() ?
18:36 stevan ok, so it is sane, just within the context of instanity
18:36 stevan _() will access instance variables
18:36 stevan _('$.foo')
18:36 autrijus ok. I think it's sane. I think.
18:36 stevan _('$.foo' => "BAR")
18:36 autrijus within the context of insanity.
18:36 autrijus right
18:36 stevan cool
18:39 iblech autrijus: re. [bin/js] Yep, idea sane :) And seems to be easy to implement, too :)
18:39 autrijus nice :)
18:39 autrijus I'd suggest njs but njs seems unmaintained and dead
18:39 autrijus spidermonkey however is hot and moving.
18:40 kolibrie anyone know where the \x{00a0} syntax is specified?
18:40 autrijus grep the bible? I thought it's one of the "carry over from p5"
18:40 kolibrie not in the bible
18:41 kolibrie so perhaps a carryover
18:41 autrijus hm. patch the bible on p6l?
18:42 kolibrie which perldoc in perl5?  anyone?
18:42 autrijus perlop
18:42 autrijus of all places!
18:43 autrijus grep for SMILEY
18:43 kolibrie found it at the exact same time!
18:43 autrijus :)
18:44 kolibrie so, those things should parse in perl6 in "", bare, and in rx?
18:44 autrijus bare?
18:44 kolibrie plain \x....
18:44 autrijus it should parse whereever \xFF parses.
18:45 autrijus not plain \x
18:45 kolibrie I mean, not in a string
18:45 kolibrie my $x = \xff;
18:45 autrijus that did not work in p5, so I don't think it works in p6.
18:46 kolibrie oh, ok.
18:58 velcro has quit IRC ("Leaving")
19:04 sahadev has joined #perl6
19:05 autrijus Aragone: <lwall> "We somehow seem to have the situation where :: is simultaneously
19:05 autrijus trying to be a leading sigil, a trailing sigil, and a separator.
19:05 autrijus "
19:05 autrijus mmm "somehow".
19:05 Darren_Duncan has joined #perl6
19:10 Darren_Duncan Following the suggestion of otherwise here yesterday, I've changed my mind and decided to do my proposed Lightning Talk straight since the content itself should be important/interesting.
19:10 svnbot6 r5705, kolibrie++ | tests for various hexadecimal notations
19:10 svnbot6 r5706, autrijus++ | * wizards.p6 repaired by kluging global subroutines as, well, global subroutines.
19:10 Darren_Duncan suggestion made by me that is, and discussed here
19:11 Darren_Duncan this refers to log time 2005.07.19, 2:12h
19:12 Darren_Duncan that is all
19:15 autrijus a wise choice I'd say.
19:16 autrijus hm, it's past 3am
19:16 autrijus I think I should sleep.
19:16 autrijus I can't believe it took me 2hr to finish journaling ;)
19:17 autrijus have fun... see you tomorrow!
19:17 * autrijus waves &
19:18 iblech Night :)
19:25 jdv79 stevan, ah, C3 does seem less insane - nice.  just read something on it.
19:31 meppl has quit IRC (Remote closed the connection)
19:38 dudley iblech: fyi, mandel.p6 runs in Safari
19:39 iblech dudley: Great :)
19:40 b6s has quit IRC ("兒童專心奶粉 &")
19:49 justatheory has quit IRC ()
19:52 saorge has joined #perl6
19:59 G2 has joined #perl6
20:01 Aankhen`` G'night.
20:01 Aankhen`` has quit IRC ("Induhvidual quote: "Tomorrow at this time... it will be Wednesday." [Time wasted online: 2hrs 6mins 17secs]")
20:14 osfameron has joined #perl6
20:24 stevan jdv79: yes, it is soooo much less insane :)
20:26 justatheory has joined #perl6
20:30 Limbic_Region has quit IRC ("tiuq\")
20:30 Maddingue has quit IRC (Read error: 104 (Connection reset by peer))
20:30 Maddingue has joined #perl6
20:30 stevan has quit IRC (Read error: 104 (Connection reset by peer))
20:39 stevan has joined #perl6
20:39 f0rth has quit IRC (Read error: 104 (Connection reset by peer))
20:39 svnbot6 r5707, iblech++ | * Usual svn props.
20:39 svnbot6 r5707, iblech++ | * Added a new test: t/pugsbugs/hash_access_interpolation.t -- "<$hash<key>>"
20:39 svnbot6 r5707, iblech++ |   doesn't work correctly.
20:40 meppl has joined #perl6
20:43 f0rth has joined #perl6
20:54 nothingmuch has joined #perl6
20:56 jhorwitz has quit IRC ("Chatzilla 0.9.67 [Firefox 1.0.4/20050511]")
21:01 iblech I vaguely remember that my %hash = (a => 1, b => 2, a => 3) sets %hash<a> to *1*, not 3.
21:01 svnbot6 r5708, Stevan++ | Perl6::MetaModel -
21:01 svnbot6 r5708, Stevan++ | * more refactoring/bootstrapping of Perl6::Object
21:01 svnbot6 r5708, Stevan++ |     - all methods except isa(), can(), meta() and AUTOLOAD() are now defined
21:01 svnbot6 r5708, Stevan++ |       in the metaclass (and isa() and can() just dispatch to AUTOLOAD)
21:01 svnbot6 r5708, Stevan++ |     - $?SELF and $?CLASS contexts are managed by ::Method now (this is
21:01 svnbot6 r5708, Stevan++ |       the beginging of param handling since ::Method now sets up the
21:01 svnbot6 r5708, Stevan++ |       execution context of the method it is envoking)
21:01 svnbot6 r5708, Stevan++ |     - all instance variable access is now done like this: _('$.foo')
21:02 svnbot6 r5708, Stevan++ |     - all class variable access is now done like this: __('$.bar')
21:02 iblech Can somebody confirm this?
21:02 Forth_ has quit IRC (Read error: 110 (Connection timed out))
21:03 stevan iblech: I would think it was the other way around
21:04 iblech stevan: I.e. like Perl 5? %hash<a> == 3?
21:04 * nothingmuch is so burned out
21:05 mugwump unless the %hash does Bag;  then %hash<a> is a Junction
21:06 stevan iblech: yes, like perl5
21:06 stevan breaking that would break a lot of stuff
21:06 iblech mugwump: Huh, is that official? That seems to me that's too easy to accidentally create a junction
21:07 svnbot6 r5709, iblech++ | t/builtins/sprintf_and_as.t -- Added tests for @array.as("format", "delim") and
21:07 svnbot6 r5709, iblech++ | %hash.as("key_format: value_format", "delim").
21:07 mugwump iblech: no, it was a joke ;)
21:07 iblech stevan: I thought so, too. But then I remembered someone highlighting that that's a constrast to Perl 5 and that people should know that etc
21:07 iblech mugwump: Good :D
21:08 Amnesiac has joined #perl6
21:16 meppl has quit IRC ("quit")
21:20 svnbot6 r5710, iblech++ | * PIL2JS: pil2js.pl -- Minor cosmetic fixes and repaired support to generate a
21:20 svnbot6 r5710, iblech++ |   big .js file with all necessary libs (PIL2JS.js and Prelude::JS) inlined
21:20 svnbot6 r5710, iblech++ |   (instead of linking to them via <script src=).
21:20 svnbot6 r5710, iblech++ | * PIL2JS: libjs/PIL2JS.js -- "\n" works correctly in Konqueror now, too.
21:20 svnbot6 r5710, iblech++ | * PIL2JS: Prelude::JS -- Support for hash creation (using &circumfix:<{ }> and
21:20 svnbot6 r5710, iblech++ |   &hash). Binding works too (both as rvalue and lvalue).
21:20 svnbot6 r5710, iblech++ | * PIL2JS: Prelude::JS -- "my @a = (1,2,3); @a[0] = 4" was not working (cannot
21:20 svnbot6 r5710, iblech++ |   modify constant). Fixed and added an appropriate test.
21:33 jdv79 has quit IRC (Read error: 113 (No route to host))
21:35 Maddingue has quit IRC (Read error: 110 (Connection timed out))
21:36 G2 has quit IRC ("oops")
21:36 svnbot6 r5711, Stevan++ | Perl6::MetaModel -
21:36 svnbot6 r5711, Stevan++ | * more metamodel refactoring
21:36 svnbot6 r5711, Stevan++ |     - can() is now implemented with WALKMETH and the :canonical order
21:36 svnbot6 r5711, Stevan++ |     - several methods removed from ::MetaClass which the .dispatcher rendered unnessecary
21:36 svnbot6 r5711, Stevan++ |     - attributes are no longer wrapped scalar refs (that was dumb anyway)
21:36 svnbot6 r5711, Stevan++ |     - other misc. housecleaning
21:37 stevan I dont know who is the bigger kharma whore today, me or iblech ;)
21:39 iblech :D
21:41 mugwump jabbot: karma Stevan
21:41 jabbot mugwump: Stevan has karma of 46
21:41 mugwump jabbot: karma iblech
21:41 jabbot mugwump: iblech has karma of 337
21:42 stevan karma Stevan
21:42 jabbot stevan: Stevan has karma of 46
21:42 stevan perlbot: karma Stevan
21:42 perlbot Karma for Stevan: 4
21:42 jabbot stevan: Stevan has karma of 46
21:42 stevan perlbot: karma iblech
21:42 perlbot Karma for iblech: 12
21:42 jabbot stevan: iblech has karma of 337
21:42 stevan oh well, its just silliness anyway :P
21:42 iblech :P
21:43 mja has quit IRC ("[BX] Captain Kangaroo uses BitchX. Shouldn't you?")
21:44 stevan we all Javascript isn't a *real* language anyway ;)
21:45 iblech But we can make it one by compiling Perl 6 to it :)
21:45 stevan amen!!!
21:45 mugwump perhaps prelude should be called "pwned" when compiled to languages like JS
21:46 stevan in the begining Perl just borrowed from other languages, now is hijacks them completely :)
21:47 sili has quit IRC ("Lost terminal")
21:48 stevan iblech: JS::Root::last & JS::Root::next... very very nice :)
21:48 jdv79 has joined #perl6
21:48 iblech stevan: Thanks :) autrijus++  # showed me that trick :)
21:52 sili- has joined #perl6
21:55 kolibrie has quit IRC ("leaving")
22:11 iblech !!!!
22:11 iblech Test.pm
22:11 iblech on JS
22:11 iblech :))
22:12 wolverian hmm. I'm a bit lost as to how to subclass Str
22:12 wolverian (or use the role)
22:13 mugwump wolverian: have you found sub-classing brokenness that is specific to the "Str" class?
22:14 Ovid has joined #perl6
22:14 wolverian no. I just don't know how to set the identity.
22:14 wolverian (this is probably related to my extremely hazy understanding of the referential semantics of perl altogether :)
22:15 mugwump I'm guessing you want to do $self = "foo"
22:15 mugwump but of course that doesn't work
22:16 wolverian this is (yet) in perl6, not in pugs. I'll have to hack around all of this if I backport :)
22:16 wolverian it feels _extremely_ strange to assign anything to $self in a BUILD
22:18 mugwump iblech started a "How do I... create a value type?" thread on p6l recently
22:18 wolverian right. let me take a look at it
22:19 stevan iblech++ # Test.pm in JS very very nice
22:19 mugwump which clearly I only skimmed.  I thought that was asking what you're asking
22:19 wolverian it's close. :)
22:20 mugwump In theory, the Str class should have a method that returns its value, that its coerce:as(Str, str) method uses
22:22 wolverian is coerce documented in AES?
22:22 iblech wolverian: A12
22:23 wolverian thanks. somehow my search missed it :)
22:26 svnbot6 r5712, iblech++ | PIL2JS: Test.pm runs. 07-test.t passes. Actually all sanity tests pass now.
22:26 svnbot6 r5712, iblech++ | * Undeclared variables ($a::b = 3, $a::b := 3) are now JavaScript-declared
22:26 svnbot6 r5712, iblech++ |   (else the script dies).
22:26 svnbot6 r5712, iblech++ | * Run the __init_ subs to correctly initialize global vars set at compile-time
22:26 svnbot6 r5712, iblech++ |   (e.g. BEGIN { $a::b = 3 }).
22:26 svnbot6 r5712, iblech++ | * Do the same with __export_ subs.
22:26 svnbot6 r5712, iblech++ | * Fixed 06-use.t: The TAP header should be outputted at runtime (as the say "ok
22:26 svnbot6 r5712, iblech++ |   1"). See comment in 06-use.t for detailled explanation.
22:26 iblech Ok, work done, need to sleep now :)
22:27 iblech Night all :)
22:27 iblech has quit IRC ("sleep &")
22:29 coral PIL2JS! hee
22:30 osfameron coral: you say "hee".  I run screaming for the woods...
22:31 Ovid has quit IRC ()
22:41 meppl has joined #perl6
22:41 justatheory has quit IRC ()
22:49 iblechbot has quit IRC (Connection timed out)
22:49 stevan has quit IRC (Read error: 104 (Connection reset by peer))
22:59 justatheory has joined #perl6
23:02 PerlJam has quit IRC ("*poof*")
23:05 f0rth has quit IRC (Read error: 104 (Connection reset by peer))
23:10 f0rth has joined #perl6
23:13 elmex has quit IRC ("leaving")
23:16 awwaiid has quit IRC (Read error: 110 (Connection timed out))
23:20 osfameron has quit IRC (Read error: 110 (Connection timed out))
23:29 nothingmuch hoooleee sheet
23:29 * nothingmuch 's brain is about to explode
23:30 jdv79 unplug!
23:37 Limbic_Region has joined #perl6
23:38 nothingmuch has quit IRC ("leaving")
23:39 stevan has joined #perl6
23:47 SamB has quit IRC (Read error: 104 (Connection reset by peer))
23:55 Limbic_Region has quit IRC (Read error: 104 (Connection reset by peer))

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

Perl 6 | Reference Documentation | Rakudo