Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-08-09

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:05 audreyt TimToady: "unless the class marks its constructor as a macro maybe "
00:06 audreyt pugs already do that :) and I think it's a sane way out
00:06 audreyt coupled with the runtime-call-to-&macro-does-a-resplice rule
00:06 audreyt that means saying class Foo{} always registers a macro &Foo
00:06 audreyt that can be mmd'ed to serve as coercer/constructor
00:07 audreyt and in the nullary case it just dissolves into ::Foo in compile time
00:07 luqui audreyt, does "resplice rule" mean what I think it means?
00:07 audreyt "if you give me nothing and want a Foo back, well I'll get you a prototype"
00:07 luqui It can't...
00:07 audreyt luqui:
00:07 audreyt If you call a macro at runtime, the result of the macro is automatically
00:07 audreyt evaluated again, so the two calls below print the same thing:
00:07 audreyt macro f { '1 + 1' } say f();    # compile-time call to &f say &f();   # runtime call to &f
00:08 audreyt S06 line 2172
00:08 audreyt and welcome back!
00:08 luqui oh.  good.
00:08 luqui thanks
00:08 luqui I was worried that it recompiled the source code in that area or something
00:09 cm_ joined perl6
00:09 audreyt er no.
00:09 audreyt luqui: have you read misc/pX/Common/mmd-draft.txt ?
00:09 luqui nein
00:09 audreyt it's taking your MMD::Pure
00:10 audreyt and tackle the multilevel tiebreaking
00:10 luqui kay
00:10 luqui I'll look it over
00:10 audreyt as well as giving a rule for "less than" for roles and constraints
00:10 audreyt ignore the rants at bottom of it
00:10 luqui let's see if I can convince svk to sync...
00:10 audreyt I wonder if C::MM::P can be updated to use that
00:11 audreyt or reflect it at the Sub::Multi side
00:11 audreyt in any case that would give v6.pm full multidispatch support
00:11 luqui neato
00:11 audreyt # http://svn.openfoundry.org/pug​s/misc/pX/Common/mmd-draft.txt
00:11 luqui hmm... svk is stalling
00:12 audreyt just use http whilst you wait for it :)
00:12 audreyt I need to sleep some more, but I'm _so_ happy that you're back :) also the dreaded Eval.Var (and most of adhoc ASt.Internals) is going away now
00:13 audreyt since we solved the expression problem in pugs core :)
00:13 luqui yummy
00:13 kanru joined perl6
00:13 audreyt using the technique in http://lambda-the-ultimate.org/node/1657
00:13 lambdabot Title: Software Extension and Integration with Type Classes | Lambda the Ultimate
00:13 audreyt bbiab...
00:21 luqui hmm, the voting take is weird...
00:21 luqui I'll have to run through the algorithm on paper to grasp it
00:23 luqui I like the "any signature is valid" business... a lot.
00:28 nekokak joined perl6
00:30 stevan luqui has returned!
00:31 * luqui stands tall with his crown
00:31 luqui what version is the mm on now?
00:31 stevan luqui: it has mutated into a Moose :)
00:31 stevan probably version 10 or 15
00:32 luqui I'm finding that not much has changed in design land, but as usual, implementation land is going strong
00:33 stevan luqui: well audreyt is now (more officially) thoroughly entrenched in the design
00:34 luqui that's good
00:34 cm_ left perl6
00:34 luqui she usually agreed with me about design decisions (after a little chatting), and she is much more persuasive than I am :-)
00:35 * stevan thinks audreyt justs bats her eyelashes and smiles to get what she wants ;)
00:36 stevan luqui: we missed you at YAPC,  nothingmuch was freeloading this time
00:36 luqui heh, sorry I couldn't have been there to deprive him the privilege
00:36 luqui during YAPC my friend max was in town.  I had to play some music with him.
00:37 stevan cool
00:37 stevan so are you back? or just stopping by ?
00:37 stevan no pressure :)
00:37 luqui Well, I can't say at this point, because school is about to start
00:37 luqui but I seem to be interested in language design again
00:37 luqui so I'm back barring external difficulties
00:37 stevan cool
00:38 luqui I'm glad I took the summer hiatus, because it produced our IGF (independent games festival) entry
00:39 stevan nice
00:39 stevan what kind of game?
00:39 luqui action/arcade
00:40 luqui with beautiful graphics
00:40 stevan gotta link?
00:40 luqui got a linux or windows box?
00:41 luqui I don't have a mac around, so it doesn't compile on mac yet.
00:41 luqui anyway, http://soylentsoft.net
00:41 luqui "Ichor"
00:41 lambdabot Title: Soylent Software
00:41 luqui thanks lambdabot.  I didn't know.
00:42 stevan hmm no,.. just mac
00:42 stevan looks pretty cool though
00:43 luqui you should see it move :-p
00:43 audreyt a liquid-war clone?
00:43 luqui not really...
00:43 stevan luqui: the only windows box I have does not even come close to those specs :(
00:43 luqui it plays much more actiony than strategically
00:43 luqui yeah, it's a cpu guzzler, unfortunately
00:43 audreyt liquid-war is actiony too
00:44 audreyt but graphics is miles better in ichor
00:44 luqui that's the one with tons of little particles that try to go toward your cursor?
00:44 audreyt wow, Galactic Flotsam.
00:44 audreyt yes.
00:45 luqui I always put that in the "strategy" category
00:45 luqui but I also never got very good at it
00:45 luqui yeah, galactic flotsam never went anywhere
00:45 audreyt I used to call it "real-time Go"
00:45 luqui I'm hoping that we pick it back up.  a cellular automaton RTS :-)
00:46 audreyt amazingly cool
00:46 audreyt you can write a book! "A New Kind of RTS"
00:46 audreyt ad have wolfram publish it...
00:47 luqui lol
00:47 luqui does it have to be 2,000 pages?
00:47 audreyt :D
00:48 luqui time for CU gamedev club.  back in a few hours.
00:48 luqui nice seeing you all again.
00:48 audreyt luqui++ # we missed you
00:49 stevan luqui++ # i second that one
00:49 luqui left perl6
00:52 hikozaemon joined perl6
00:52 froh-doh how necessary is hs-plugins for one that wants to play a bit with perl6?
00:53 froh-doh ugh, maybe my english is a bit too italian, I'll try to rephrase
00:53 svnbot6 r12020 | rodi++ | Test for cascading argumentless methods in string interpolation.
00:54 froh-doh do I need hs-plugins to play with pugs?
00:54 audreyt no
00:54 audreyt wouldn't matter
00:55 froh-doh wonderful :)
00:55 froh-doh I feared that I had to download each single file from http://www.cse.unsw.edu.au/~dons/code/hs-plugins/
00:55 lambdabot Title: Index of /~dons/code/hs-plugins
00:56 audreyt never mind... the warning is now removed
00:59 svnbot6 r12021 | audreyt++ | * haskell embedding is now enabled only with PUGS_EMBED=haskell
01:05 froh-doh sorry for boring, but it warns me to install the GNU readline library if I want the support, and I already have it. Am I missing something?
01:05 froh-doh (apart from readline support, of course ;)
01:13 audreyt which platform are you on?
01:13 audreyt if it's mac, the osx readline is not gnu readlin
01:16 froh-doh sorry, I'm a moron. I'm on linux, debian sarge
01:23 weinig joined perl6
01:24 audreyt libghc-cvs-readline-dev ?
01:24 audreyt not sure
01:24 audreyt I havn't had experience in ghc+debian myself
01:24 audreyt you can build pugs still without readline
01:25 froh-doh audreyt: I couldn't wait, I'm in the make test phase ;)
01:25 audreyt lol :)
01:25 audreyt (if you checkout from trunk, tests are expected to fail)
01:26 froh-doh no, I'm going the plain "package" path to start
01:26 audreyt 124 fail and 25 unexpected succeess here
01:26 audreyt oh ok.
01:27 froh-doh otoh, I had a couple of pod errors in parrot's package :)
01:27 froh-doh what's mystical is that the test suite is *already* in perl6
01:28 audreyt er, sure, we are a perl6 implementaiton after all
01:28 audreyt how would you test a perl6 implementation if not by tests written in perl6? :)
01:28 froh-doh :)
01:29 audreyt actually, to some degree the tests define the perl6 as we know it...
01:29 audreyt anyway, try check out the svn repo while you run the tests :)
01:29 audreyt # http://search.cpan.org/dist/Pe​rl6-Pugs/lib/Pugs/Doc/Hack.pod
01:29 lambdabot Title: Pugs::Doc::Hack - How to hack on Pugs - search.cpan.org
01:30 audreyt also, what's your email addr? I'll send you a commit bit in the case that you'd like to add new tests or fix stuff or add docs or contrib examples
01:30 froh-doh flavio [at] polettix.it
01:31 audreyt ooh, another flavio :)
01:32 froh-doh really? It's not so common a name (even if one of my best friends is named Flavio as well)
01:32 froh-doh cool
01:32 audreyt sent. welcome aboard :) try adding yourself to the AUTHORS file as your first test commit
01:32 froh-doh lol
01:32 rodi froh-doh: audreyt did the same thing to me, and now when I'm not rocking my baby to sleep...
01:32 froh-doh some water will have to pass below bridges...
01:33 rodi yeah, that's what we all say... at first ;)
01:34 audreyt the first commit is always free!
01:35 froh-doh uhm, I thought I could substitute svn with svk in    svn co http://svn.openfoundry.org/pugs
01:35 lambdabot Title: Revision 11971: /
01:35 audreyt (* all commits are free; but the first commit is more free than others)
01:35 audreyt that is correct
01:35 audreyt you can hit enter a few times
01:35 froh-doh maybe my svk is a bit dated, then
01:36 froh-doh ah, ok, so I've to mirror?
01:36 audreyt well, depends. if you can wait for an hour or so
01:36 audreyt then just hit enter all the way
01:36 froh-doh lol
01:36 audreyt if you are ina rush, type "h" instead of "a"
01:36 audreyt when it asks whether to mirror all revisions
01:36 audreyt but ifit's a stable net connection, let it finish mirroring gives you very fast "svk log" after wards
01:36 audreyt since it doesn't have to go to server to ask for log
01:37 froh-doh is it a lot of stuff in disk space terms?
01:38 audreyt 364mb
01:40 froh-doh "Retrieving log information from 1 to 12021" !
01:41 dolmans joined perl6
01:41 weinig joined perl6
01:41 audreyt mm palindromic revnnum
01:43 rodi mm, and the date is 8/8.  I'm sure this means something.
01:46 fftzen joined perl6
01:47 fftzen does perl 6 support variable length look behind assertions?
01:48 audreyt ?eval "Hello, world" ~~ m:P5/(?<=Hello|Hi), (world)/
01:48 evalbot_11989 is now known as evalbot_12021
01:48 evalbot_12021 Match.new(   ok => Bool::True,    from => 5,    to => 12,    str => ", world",    sub_pos =>     (Match.new(        ok => Bool::True,         from => 7,         to => 12,         str => "world",         sub_pos => (),         sub_named => {}      ),),    sub_named => {} )
01:49 audreyt ?eval "Hello, world" ~~ m/<after (Hello|Hi)>, (world)/
01:49 evalbot_12021 *** Cannot parse PGE: <after (Hello|Hi)>, (world) *** Error: Cannot find the parrot executable in PATH Match.new(   ok => Bool::False,    from => 0,    to => 0,    str => "",    sub_pos => (),    sub_named => {} )
01:50 audreyt fixing that :)
01:50 audreyt fftzen: but the answer is "yes"
01:50 mauke ?eval "Hello, world" ~~ m:P5/(?<=(\w+))$/
01:50 evalbot_12021 pugs: user error (PCRE Regular Expression Error: (?<=(\w+))$          ^ lookbehind assertion is not fixed length)
01:51 audreyt mauke: I think PGE got that done
01:51 mauke what are the semantics?
01:52 audreyt yes, PGE supports that
01:53 fftzen ?eval "abaacadad" ~~ m/(?<=a.*a)a(.*?)ad)/
01:53 evalbot_12021 *** Cannot parse PGE: (?<=a.*a)a(.*?)ad) *** Error: Cannot find the parrot executable in PATH Match.new(   ok => Bool::False,    from => 0,    to => 0,    str => "",    sub_pos => (),    sub_named => {} )
01:54 froh-doh TIMTOWTDI -> TAWTMWTDI
01:54 audreyt fftzen: syntax is
01:54 audreyt "abaacadad" ~~ /<after a.*a>a(.*?)ad/
01:54 audreyt or for noncapturing assertion
01:54 audreyt "abaacadad" ~~ /<?after a.*a>a(.*?)ad/
01:55 audreyt I'm building parrot on feather; in a couple mins evalbot will grok that
01:56 froh-doh ?eval my $ref = <Hello, world>; my @arr = <Hey, you!>; my $nref = \@arr; say for $nref[0], $nref.[0], @arr[0], @arr.[0], $ref[0], $ref.[0]
01:56 evalbot_12021 OUTPUT[      ] undef
01:57 audreyt meanwhile, at my local pugs shell
01:57 froh-doh I prefer the command line response
01:57 audreyt pugs> "abaacadad" ~~ /<?after a.*a>a(.*?)ad/
01:57 audreyt Match.new(
01:57 audreyt  ok => Bool::True,
01:57 audreyt  from => 3,
01:57 audreyt  to => 7,
01:57 audreyt  str => "acad",
01:57 audreyt  sub_pos =>
01:57 audreyt    (Match.new(
01:57 audreyt       ok => Bool::True,
01:57 audreyt       from => 4,
01:57 audreyt       to => 5,
01:57 audreyt       str => "c",
01:57 audreyt       sub_pos => (),
01:57 audreyt       sub_named => {}
01:57 audreyt     ),),
01:57 audreyt  sub_named => {}
01:57 audreyt )
01:57 fftzen cool
01:58 cmarcelo audreyt: hey! re: judy array patch.. only six tests don't pass, they are related to HTML entities and t/xx-uncategorized/unicode.t ... i'll change the names Map -> CStringMap, Map2 -> IntMap, what about MapSL? =P or Map => CStringLenMap (ugly!) and MapSL => CStringMap?
01:59 froh-doh thank you all, I'm going to sleep while the test suite runs at full-fan and svk syncs :)
01:59 audreyt cmarcelo: Map is not a Map it's a Hash
01:59 audreyt haskell Map guarantees ordering :)
01:59 cmarcelo audreyt: also, do you have any idea why "my @a; @a[999999999]=2; say @a.elems" doesn't go direct to array_fetchSize (it's constant time to get the size in TVar, but here it hangs)?
01:59 audreyt cmarcelo: so I think IntMap and StrMap and Hash
02:00 audreyt cmarcelo: yes, I think I know hwy
02:00 audreyt in src/Pugs/Prim.hs
02:00 audreyt op1 "List::end"   = op1Cast (VInt . (-1 +) . (genericLength :: VList -> VInt))
02:00 audreyt op1 "List::elems" = op1Cast (VInt . (genericLength :: VList -> VInt))
02:00 audreyt I cast it to a haskell List and then count the length :D
02:00 audreyt clearly it should say array_fetchsize there
02:01 audreyt if you can patch that to follow the lead of "keys"
02:01 audreyt and add sizeFromVal in src/Pugs/Prim/Keyed.hs
02:01 audreyt that'd be great
02:01 audreyt otherwise I'll look into it this afternoon
02:01 audreyt that is to say in 5 hours
02:03 audreyt froh-doh: g'nite!
02:03 audreyt cmarcelo: also, why do you use JudySL instead of JudyHS to model IHash?
02:03 audreyt wouldn't that be 1)slower 2)forbid null bytes in hash keys?
02:04 audreyt I'd prefer to use JudyHS if possible
02:05 cmarcelo audreyt: don't get "follow the lead of keys".. could you rephrase? =P I'll try to patch as much as I can... =o)
02:05 audreyt follow the lead of line 535 of Prim.hs
02:05 audreyt op1 "keys" = keysFromVal
02:05 cmarcelo oh i see.
02:06 audreyt so implement "elems" as
02:06 audreyt op1 "List::elems" = sizeFromVal
02:06 audreyt and add the sizeFromVal in Prim/Keyed.hs
02:06 audreyt by do_array it with array_fetchSiez
02:06 audreyt improvise :)
02:06 cmarcelo oka
02:07 cmarcelo i'll change to JudyHS.. i was just being lazy as last patch was using SL because of old Iter troubles =P
02:07 audreyt in any case... if its just those 6 tests that fails
02:07 audreyt then I know exactly why :)
02:07 audreyt once it's switched to HS with VStr as keys
02:07 audreyt then the problem should go away
02:07 cmarcelo audreyt: utf-8 allows \0 in its encoding ?
02:07 cmarcelo i mean
02:07 audreyt aye it does
02:08 audreyt $hash{"this key has \0 in it"} = 1
02:08 audreyt JudyHS would work
02:08 audreyt JudySL will break horribly
02:08 cmarcelo in middle of a string
02:08 cmarcelo so probably that's it =P
02:08 audreyt I think it's a missing decudeUTF8
02:08 audreyt but that's fine... as soon as it's 1)renamed 2)changed to JudyHS
02:08 audreyt please commit ahead
02:09 audreyt I'll fix the utf8 thing if needed
02:09 audreyt cmarcelo++ # _so_ happy to see this landing
02:09 hexmode joined perl6
02:10 cmarcelo audreyt: sure about committing? i prefer come up with a patch and if it looks sane, find a way to build judy (and HsJudy, which is easier) in util/build_pugs.pl
02:10 audreyt HsJudy can be built just like fps
02:10 audreyt just add it alongside fps
02:11 cmarcelo but and spinclad's judy [it isn't on judy-trunk yet, afaik]?
02:11 cmarcelo s/but and/what about/
02:11 audreyt it isn't...
02:11 audreyt arguably HsJudy should build it along with that
02:11 audreyt using Cabal's support for configure scripts
02:11 audreyt hm
02:11 audreyt I'm not 100% sure.
02:11 cmarcelo well
02:12 audreyt as long as it can be built automatically in your setup
02:12 audreyt it's okay to break everybody else's and commit
02:12 audreyt as it'll make it easier for others to unbreak it
02:13 audreyt "it's okay to break the build for other people as long as it works for you :)"
02:13 cmarcelo in next hours I'll come up with HS, renames etc (don't believe in my timezone btw)... then I look for building things (may integrate judy code inside mine, if "lawyers" doesn't complain, like HsSyck)..
02:14 audreyt I think cabal allows specifying c-source-dir and include-dir outside your path
02:14 audreyt but if copying the dir over is easier, go ahead and do that :)
02:14 audreyt it's in third-party/ space, the lawyers explicitly don't care :)
02:15 cmarcelo cool =)
02:15 audreyt (at least until we release the tarball; we'll figure something out at that time)
02:15 cmarcelo i'll shower >> make food >>= eat, see you later &
02:16 audreyt mm monadic life
02:16 * audreyt goes to $job as well
02:17 * fftzen has hit a dead end with php and decides to go to sleep to dream about perl
02:59 justatheory joined perl6
03:16 Schmoople joined perl6
03:16 svnbot6 r12022 | fglock++ | v6 - <ws> is split into several subrules for pod, comments
03:23 drbean joined perl6
03:24 mugwump joined perl6
03:36 tokuhirom joined perl6
04:14 xern joined perl6
04:14 xern joined perl6
04:20 svnbot6 r12023 | fglock++ | v6 - added a %quote table to Pugs::Runtime::Common
04:26 gaal dduncan: is the Buf type what you want? See L<S06/Built-in types>
04:27 audreyt ?eval 1 ~~ /<after .*>/
04:27 evalbot_12021 is now known as evalbot_12023
04:27 evalbot_12023 Match.new(   ok => Bool::True,    from => 0,    to => 0,    str => "",    sub_pos => (),    sub_named =>     { "after" =>         Match.new(           ok => Bool::True,            from => 0,            to => 0,            str => "",            sub_pos => (),            sub_named => {}         )     } )
04:27 audreyt cool, pge is back
04:28 gaal hey audreyt
04:28 audreyt yo
04:28 * audreyt @ job
04:28 gaal <- just woke up
04:30 dduncan gaal, if you're referring to my p6l post about the name of the Str type, then Buf is a separate matter
04:31 dduncan I was saying that the name for a string of characters ought to be something more specific-sounding than Str is
04:31 dduncan because historically a "string" had a variety of uses and wasn't specific to characters
04:32 dduncan yes, I know that if you look at S06, the documentation is clear about what the types mean, but that doesn't mean the names can't be improved, such that referring to the documentation is less necessary to understand a program
04:33 gaal dduncan: and Buf in p6 is a more indexy way of looking at that
04:33 gaal maybe I don'
04:33 thestarslookdown joined perl6
04:33 gaal t understand the concern.
04:33 audreyt "string" is overloaded I agree
04:33 audreyt Str however is not :)
04:33 dduncan does not "Str" evoke "string" in people's minds?
04:34 audreyt marginally
04:34 audreyt but if we say "Str is always unicode"
04:34 audreyt then it'll stick
04:34 audreyt instead of "string is always unicode"
04:34 audreyt which probably is adding more confusion
04:34 dduncan regardless, looking at the bigger picture, I am thinking it would be useful to have distinct immutable types for character strings and bit strings, these 2 in addition to the mutable Buf type
04:34 audreyt bit strings?
04:34 audreyt what is a bit string but a Buf?
04:35 dduncan in other words, an immutable chunk of binary data
04:35 audreyt my intention is that the perl5 "byte string" is renamed to Buf
04:35 audreyt and perl5 "unicode string" is renamed to Str
04:35 audreyt and disallow implicit coercion between the two
04:35 dduncan yes, but Buf is mutable
04:35 dduncan I would like to have a native type for bit strings such that === will do value comparison between them
04:35 audreyt you'll also note that I disagree with larry in that I think Buf should be immutable :D
04:36 audreyt and mutability should be done thru compactly encoded arrays
04:36 dduncan I think that Buf is a perfectly good name for a mutable type, since a "buffer" suggests a larger space where parts of it are regularly added to or changed separately
04:37 gaal audreyt, did you see the Val stuff? `1` gets to MkInt if I twist the Parser's arm behind its back.
04:37 dduncan my current suggestion to change Str to something else is meant to pave the way for distinct immutable character and bit strings
04:37 audreyt Seq[Byte]
04:37 audreyt gaal: I see that :) cool!
04:37 dduncan if both of those are strings, then naming just one of them Str is ambiguous
04:37 audreyt though what I meant for `1` + `1` was
04:37 audreyt string->coerced to num
04:37 audreyt but cool still :)
04:38 dduncan in fact, good names would probably be CharStr/Str::Char and BitStr/Str::Bit , but I seem to recall that we want all our built-ins to be single words for aesthetics
04:38 gaal but by the time it's in 'expr' in the parser, it's a VStr, so the coersion is in old haskellspace
04:38 gaal because this is after all a hijacked quoting rule
04:39 dduncan see, in the general sense, a string is just a compact array of values of any type
04:39 dduncan and in practice, character and bit strings are used most commonly
04:39 dduncan to just call one a string (str) seems inappropriate
04:39 audreyt dduncan: actually... our strings a a bit more
04:39 audreyt they are ropes
04:39 audreyt or should be ropes
04:40 audreyt in that it's like List, it has fragments
04:40 audreyt instead of a compact storage
04:40 audreyt i.e. concat on two Str possibly does not malloc for more
04:40 gaal that's entirely the backend's business, isn't it?
04:40 dduncan I just say compact in a conceptual sense ... they are like arrays but we treat them like single units
04:40 audreyt it is, but that means we cannot expose a compact-array interface
04:40 audreyt it also means mutability must be forbidden
04:41 audreyt so backend can change layout behind the scene
04:41 dduncan but you can ignore the 'compact' part of my statements ...
04:41 audreyt k
04:41 dduncan the point is, I think it is important to have built-in immutable string types for both characters and bits
04:41 audreyt again, what's wrong with Seq[Byte]?
04:42 audreyt (Seq of Byte) that is
04:42 dduncan the problem here is related to ... what's the word? ...
04:42 gaal audreyt: so re `1`, I don't understand where you were aiming for the decision that this is to be taken as a Val.Int and not a Val.Str to be
04:42 gaal dduncan: ergonomics?
04:42 dduncan two things that should be treated the same but are treated differently
04:42 gaal discrimination?
04:42 gaal distinction?
04:42 dduncan same, meaning of equal importance or access
04:43 gaal conflation?
04:43 dduncan basically, one should be able to use strings of bits with the same terseness of code as one can use strings of characters
04:43 gaal confusion?
04:43 audreyt gaal: I was aiming for adding coercion to num to PureStr
04:43 gaal pestilence?
04:43 audreyt gaal: and expose it
04:43 audreyt gaal: that is
04:43 audreyt `foo` + `123`
04:43 audreyt should return 123
04:43 dduncan I shouldn't have to say Seq[Bit] for one and just Str for the other
04:43 audreyt `123foo` + `456bar`
04:43 audreyt should return 579
04:43 dduncan on that note ...
04:44 audreyt dduncan: but Str is not Seq[Char]
04:44 audreyt so it warrants a new name
04:44 gaal audreyt: that means we need a literal parser in Val
04:44 audreyt your idea of immutable bitbuffer however is eally just Seq[Byte]
04:44 audreyt gaal: nono
04:44 audreyt gaal: `foo` constructs a PureStr
04:44 audreyt `123` also a PureStr
04:44 dduncan but it is valid to treat it as a sequence of unicode characters, is it not?
04:44 gaal what does `1`
04:44 audreyt I just want them to be able to be coerced to nu
04:44 gaal oh ok
04:44 audreyt num
04:44 gaal in +
04:45 audreyt dduncan: yes, it is conceptually okay to cast between it and Seq[bit21]
04:45 audreyt I mean uint21
04:45 dduncan a Str is conceptually a string of >= 0 unicode chars
04:45 audreyt but concrete builtin class not only govern interface
04:45 audreyt it also govern storage
04:45 dduncan you're dragging in implementation issues that I'm trying to avoid
04:45 audreyt and the storage strategy of Seq and Str is quite different
04:46 audreyt uhm, if not for implementation issues, we wouldn't have Array
04:46 audreyt everyone will just use Hash of Int
04:46 audreyt or OrderedHash or Int
04:46 dduncan I'm talking about the uint21 thing equaling a char
04:46 audreyt also, Str has methods such as .uc
04:46 audreyt and Seq[bit21] wouldn't
04:46 audreyt which is again implementation issues
04:46 audreyt but it shows in surface
04:47 dduncan but you should be able to use the various bit manipulating operators on a bit string
04:47 audreyt hm
04:48 audreyt and Seq[Byte] won't neccessarily give you that
04:48 audreyt or would it?
04:49 dduncan bit strings are meant to use, for example, with arbitrary chunks of data whose internal structure we don't know, and has to be maintained exactly and without interpretation ...
04:50 audreyt say, if as in ruby, we provide
04:50 dduncan they can also be used for arbitrary-length checksums or bit transformations of data
04:50 audreyt Buf.freeze
04:50 audreyt after which you cannot change the content
04:50 audreyt would that be good enough?
04:52 dduncan this would be bias showing through, but I would like for something equivalent to the concept of a blob that all databases have, for storing arbitrary unknown-format binary data for later retrieval, and that might be operated on with various bit operators like checksums or encryption
04:53 dduncan all data types in databases are immutable, and Perl 6 already has equivalents of all the other basic types that are common ...
04:53 dduncan namely, character strings, integers, rational numbers, and booleans
04:53 audreyt Blob is a pretty good name.
04:53 audreyt thing is, though, that such things can easily be user defined :)
04:54 dduncan I consider that to be an elementary type, not something that is defined in terms of other things
04:54 dduncan it is something over which other things are defined
04:54 audreyt but as I showed, it can be defined on term of Seq[bytes]
04:54 dduncan while we could go with "blob" for a name, I don't like it in some respects because it stands for "binary large object", but what I'm looking for may in fact be small
04:55 audreyt whilst Str is quite harder (or even impossible) to define that way
04:55 audreyt mm "Bob"
04:56 dduncan also confusing the issue, though I won't go there, is that some database implementations have separate "character" and "character large object" types ... a bad idea ... I would only have one character string type, which is the same as the Str type is in Perl 6
04:57 dduncan since that type can be of any length
04:57 audreyt I'd prefer that as well
04:57 dduncan similarly I want a single immutable type for a binary string that can be of any length, from zero bits to terabytes+ (as implementations support)
04:58 audreyt I wonder if we can make "buf" immutable.
04:58 audreyt if so that will fit your need
04:58 audreyt maybe call it "bytes".
04:58 dduncan buf is a non-portable type
04:59 audreyt why?
04:59 audreyt it is as portable as bit.
04:59 audreyt "bit".
04:59 dduncan what I'm looking for has to be an immutable conceptually low level but still abstracted type
04:59 audreyt which is pretty portable
04:59 audreyt or "int32"
04:59 audreyt which is again very portable.
04:59 dduncan like characters and integers are treated
04:59 dduncan an int32 is not the same on different-endian systems, but an Int is the same
04:59 dduncan from a user's pov
05:00 dduncan and an Int is arbitrary length, which is what is desired
05:00 dduncan the int/buf/etc types are explicitly for the hardware showing through ... the Int/Str/etc , and what I want ... do not have the hardware show through
05:01 audreyt no, not so
05:01 audreyt "int" and "uint" is specced to be hardware dependent
05:01 audreyt but "int8" is always the same length
05:01 audreyt as is "bit"
05:01 audreyt as is "buf"
05:02 audreyt the criteria of lowercase types is merely that they can be subject to compact storage
05:02 audreyt i.e. can be stored in "unboxed" form
05:02 dduncan there must be some reason that it is common for database systems to have a built-in bit string type that is treated like a character string type ... it must be widely useful
05:02 dduncan treated is perhaps the wrong word
05:03 dduncan but they are both hidden from the hardware storage details
05:03 audreyt it is widely useful, and I wouldn't object to a immutable byte array
05:03 audreyt whether they are named Seq[Byte], ByteSeq, Buf (but frozen) or buf
05:03 audreyt is a matter of ergonomics :)
05:04 dduncan ergonomically, ByteSeq or Buf looks best to me ...
05:04 dduncan but a possibly mutable type should have a different name from an immutable one
05:04 dduncan so using plain Buf for both is inappropriate
05:04 dduncan and lowercase buf still looks like something hardware specific
05:05 PerlJam dduncan: re: it must be widely useful, it could just be widely cargo culted too  ;)
05:05 dduncan well, I think it is reasonable to have a portable/wrapped looking immutable type that looks like what all computer operations are conceptually built over ... bits
05:06 dduncan it gives you the most leverage when defining your own arbitrary types
05:06 dduncan having other types makes things easier by abstracting out common uses, like numbers and characters
05:07 dduncan so it makes sense to have both bit strings and char strings and numbers and booleans, all built-in, and all looking similar as far as favoritism goes
05:07 audreyt "bit sequences" please :)
05:07 audreyt but otherwise I agree
05:07 dduncan yes
05:08 audreyt it is not a string if you can't write your name in it.
05:08 dduncan do you prefer character sequences as well?
05:08 audreyt :)
05:08 audreyt I'd prefer just "string"
05:08 gaal cequence
05:08 audreyt or "Str"
05:08 audreyt interchangeable with "character sequence"
05:08 PerlJam audreyt: does that make atoms strings?  Because I seem to recall some researchers at IBM pushing around some atoms to write "IBM"  :)
05:08 dduncan have a look at this: http://en.wikipedia.org/wik​i/String_(computer_science)
05:08 audreyt PerlJam: sure, you can string atoms together...
05:09 audreyt they are built from strings too
05:09 dduncan if you believe that, then a string doesn't have to be something you write your name in
05:09 gaal we can call them Perls!
05:09 dduncan in the generic sense
05:09 audreyt super strings ;)
05:09 dduncan "In computer programming and some branches of mathematics, strings are sequences of various simple objects."
05:10 audreyt dduncan: which is why I think "string is overloaded term
05:10 dduncan such as characters or bits or numbers
05:10 dduncan yes
05:10 audreyt and so I avoid that name altogether
05:10 audreyt it's "Str" :)
05:10 gaal does mathematics have cheap branches?
05:10 dduncan and that's why I thought we should avoid "string" too, hence my p6l message
05:10 audreyt aye
05:10 dduncan but part of the issue is that I see Str as just being an abbreviation of "string", as Int is for "integer"
05:11 PerlJam perhaps I'm just used to strings-not-as-characters but I don't mind the term "bit string" and the like.
05:11 dduncan so the problem remains for the most part
05:12 audreyt well, other mainstream languages already completed their String-means-unicode switch...
05:12 audreyt but well, I don't care much about ergonomics :)
05:12 * audreyt goes back to $job
05:25 gaal why doesn't this dwim?
05:26 gaal instance ICoercible P PureStr where asNum = return . cast . read . castBack
05:26 dduncan hey, I just thought of something ...
05:26 dduncan leaving the name of the Str type alone for the moment ...
05:27 dduncan while 'Blob' has bad connotations regarding its signifying "large", we could go for synonyms of the acronym ...
05:27 gaal bob? # same thing w/o the large
05:28 dduncan for example, 'Lump' or 'Chunk'
05:28 TimToady Real blobs can come in any size.
05:28 dduncan yes
05:28 dduncan and I suppose I can live with the name Blob if we ignore the fact that it stands for "large object" in the same way that we ignore the fact that Str isn't quit unambiguous enough ...
05:28 TimToady And I think Blob is the closest existing thing to what you want, leaving aside the acronym
05:29 dduncan yes, that is true
05:29 gaal Bin? Raw? Gob?
05:29 TimToady which sounds like a backronym to me anyway.
05:29 dduncan and at the end of the day, a name which is good-enough is better than nothing
05:30 thestarslookdown left perl6
05:30 svnbot6 r12024 | cmarcelo++ | HsJudy:
05:30 svnbot6 r12024 | cmarcelo++ | * Renames: (Map -> Hash, Map2 -> IntMap, MapSL -> StrMap)
05:30 svnbot6 r12024 | cmarcelo++ | * Extracting Stringable to a separate file.
05:30 svnbot6 r12024 | cmarcelo++ | * IntMap: Special implementations for n=1 of takeFirst and takeLast.
05:30 svnbot6 r12024 | cmarcelo++ | * StrMap: Include a new toRevList and backend for
05:30 dduncan my main desire is simply to have the immutable non-machine-tied data type in question be built in and as terse to use as other non-collection types
05:30 TimToady well, my family's dragging me off, so later &
05:30 PerlJam dduncan: Let's call it X  :)
05:30 dduncan Blob is as good a name as any we're likely to get
05:31 SamB X!
05:31 SamB X is a bloated window system in its eleventh version and seventh revision!
05:42 gaal audreyt: I'm getting
05:42 gaal No instance for ((:<:) PureStr String)
05:42 gaal but isn't that supposed to be derived?
05:43 gaal trying to do an asNum method in ICoercible P PureStr
05:43 gaal asNum x = return $ cast (n :: Double) where n = read $ castBack x
05:43 gaal the error is in the castBack call.
05:44 gaal brb
05:53 gaal oh probably this is better implemented with a function in Val.Str
05:56 nirgle joined perl6
05:56 nirgle left perl6
06:01 mugwump anyone have any pugs subversion stats?
06:10 Kattana joined perl6
06:11 gaal `1`+`41` landed
06:12 svnbot6 r12025 | gaal++ |  r9130@colinux:  roo | 2006-02-23 06:44:13 -0500
06:12 svnbot6 r12025 | gaal++ |  * Pugs.Prim: Pugs::Internals::emit_yaml prim to dump some AST
06:12 svnbot6 r12025 | gaal++ |    programmatically, analogously to pugs -CParse-YAML
06:13 gaal oh no
06:13 gaal that's a very old change
06:13 gaal ^c^c^csvk!@#%$
06:13 svnbot6 r12026 | gaal++ |  r9131@colinux:  roo | 2006-02-23 06:44:47 -0500
06:13 svnbot6 r12026 | gaal++ |  * Precompile Test.pm before running smoke tests
06:13 svnbot6 r12027 | gaal++ |  r9132@colinux:  audreyt | 2006-02-23 06:54:00 -0500
06:13 svnbot6 r12027 | gaal++ |  * s/Pugs-YAML/Parse-YAML/
06:16 gaal hold yer updates, people
06:20 cmarcelo gaal: what `1` syntax means?
06:21 gaal cmarcelo: it's a crutch to access new-AST from current pugs
06:21 gaal sec, fixing the build
06:31 broquaint joined perl6
06:33 gaal wow I hope I didn't break the repo
06:34 gaal while I'm doing a clean co:
06:34 gaal cmarcelo: the idea is that we want a temporary way to construct new-AST values
06:34 gaal so audreyt hijacked the qx// or `` syntax, since pugs hasn't handled it anyway
06:34 cmarcelo side question: what should I do to generate src/Pugs/AST/Internals/Instances.hs ?
06:35 gaal this cosntructs a Pugs.Val.Str PureStr object
06:35 gaal and the pending non-borked commit shows it being coerced to a new-number
06:35 gaal cmarcelo: you need DrIFT
06:35 gaal but you don't have to do that stuff
06:35 gaal @where DrIFT
06:35 lambdabot http://repetae.net/john/computer/haskell/DrIFT/
06:36 cmarcelo gaal: cool.. i was hoping for a pugs.blogs entry about this shift =o)
06:37 gaal there's a draft of one but audreyt and I are too distractable to finish it :)
06:37 gaal but keep prodding please :)
06:37 cmarcelo gaal: re: drift.. why shouldn't I? I create a rule in drift section of AST/Internals.hs  for YAML IHash, and want to propagate it the right way..
06:39 gaal oh sure, if you are drifting!
06:39 gaal certainly :)
06:39 gaal then what you need is:
06:39 tokuhirom left perl6
06:39 gaal 1. d/l drift, unpack it as a sister dir to pugs
06:39 gaal 2. mv DrIFT-n.m.x DrIFT
06:39 gaal 3. cd pugs
06:40 gaal 4. perl util/claim_drift.pl
06:40 gaal that's it.
06:40 kane-xs joined perl6
06:41 cmarcelo gaal: let's see if DriFT and GHC-trunk are nice to each other =o)..
06:41 cmarcelo (oh! thanks =)
06:42 gaal np :) no reason why not
06:43 gaal okay I think I did somehow bork the repo :(
06:43 gaal audreyt: ping
06:44 gaal What I did: svk push, notice I was pushing a bunch of very old commits, hit ^c after three
06:44 gaal they seem to be committed but the version numbers in the repo are screwed up
06:44 gaal I can't merge them away.
06:45 gaal probably a subversion bug? :(
06:46 gaal and I really am late for $work... *sigh*
06:48 gaal okay, gotta moose over to the office. bbiab&
07:03 buetow joined perl6
07:10 gaal rehi
07:10 gaal (bike commute)++
07:15 tup joined perl6
07:35 zofbot joined perl6
07:39 bsb left perl6
07:39 zofbot joined perl6
07:41 zofbot joined perl6
07:46 zofbot joined perl6
07:47 cmarcelo The 'pmc_support' method does not exist in the '../../inc' path!
07:47 cmarcelo Please remove the '../../inc' directory and run Makefile.PL again to load it.
07:47 cmarcelo this appears in the end of "make"..
07:49 cmarcelo removing inc breaks "perl Makefile.PL"
07:54 cmarcelo this is preventing "make smoke" and "make install" work =P
07:55 TimToady yes, I'm getting the same runaround, but it's 1:00 am here, so I'm giving up and hoping someone will fix it by the time I come back...
07:56 TimToady nite &
07:56 zofbot joined perl6
07:56 cmarcelo ok.. good night.
08:02 iblechbot joined perl6
08:21 gaal try syncing the repo to before 12025 - but it may not be possible :(
08:29 jferrero joined perl6
08:36 elmex joined perl6
08:42 ruoso joined perl6
08:48 avar joined perl6
08:49 plisk joined perl6
08:53 renormalist joined perl6
08:54 cmarcelo audreyt: re: List::elems   I think something is blocking before 'op1 "List::elems"', is that possible that pugs is trying to convert to VArray before calling op1 ?
08:57 cmarcelo but doesn't make much sense, I tested in a code that was available only to VUndef and VRef, and for VRef only MkRef (IArray arr)...
08:59 pasteling "cmarcelo" at 200.232.237.151 pasted "List::elems sketch" (84 lines, 3K) at http://sial.org/pbot/18865
09:09 cmarcelo op1 "List::elems" = \v -> do { size <- doArray v array_fetchSize; sz <- size;  return $ castV sz }
09:09 cmarcelo even this above blocks..
09:11 chris2 joined perl6
09:34 cm joined perl6
09:43 lypanov left perl6
10:07 cmarcelo audreyt: in "pop" happens the same.. something consumes a long time before the op1 "pop"..
10:08 dduncan left perl6
10:15 kane__ is now known as kane-xs_
10:30 lollan joined perl6
10:34 kanru joined perl6
10:37 jferrero joined perl6
10:43 audreyt hi
10:44 cmarcelo hello
10:45 audreyt cmarcelo: line 1766 Prim.hs
10:45 svnbot6 r12028 | audreyt++ | * add module::install PMC support to inc/
10:45 audreyt (Array)
10:45 audreyt change to
10:45 audreyt (rw!Array)
10:45 audreyt will prevent the VList conversion
10:47 lichtkind joined perl6
10:48 xinming joined perl6
10:49 cmarcelo audreyt: will try it...
10:49 silug joined perl6
10:51 cmarcelo strange thing is, pop is rw!Array already...
10:59 gaal joined perl6
10:59 gaal|work joined perl6
10:59 gaal|work hi! audreyt, is the build not broken for you?
11:00 silug joined perl6
11:00 gaal|work the last three commits before your latest are bogus but I can't revert them :(
11:01 audreyt bogus how
11:01 svnbot6 r12029 | audreyt++ | * unbreak the build
11:02 gaal|work they were three old commits somehow waiting in my working copy, svk push threw them in and I got very weird r number discrepancies trying to revert them.
11:02 audreyt oh ok.
11:03 audreyt i'll revert
11:03 TimToady joined perl6
11:03 gaal|work merge -r12027:12026 etc. made it look like the repo itself was damaged :(
11:03 silug joined perl6
11:04 gaal|work i lost connectivity to my machine at home (murphy must be playing catchup)
11:05 cmarcelo from last commit: "Can't locate object method "new" via package "Module::Install::PMC" at inc/Module/Install.pm line 144."
11:05 christopher joined perl6
11:05 audreyt cmarcelo: r12029 should fix that
11:05 audreyt hm weird
11:06 cmarcelo audreyt: rw!Array doesn't seem to be enough..
11:07 xinming_ joined perl6
11:07 cmarcelo who calls op1's during execution?
11:08 audreyt line 1459
11:08 audreyt Prim
11:08 audreyt is the dispatcher
11:08 audreyt thinking
11:08 svnbot6 r12030 | audreyt++ | * revert gaal's miscommits
11:09 audreyt well... I think you should fix hsjudy building
11:09 audreyt and then commit
11:09 audreyt and I'll pull and fix it there :)
11:09 xinming_ is now known as xinming
11:10 cmarcelo ok
11:11 svnbot6 r12031 | audreyt++ | * some more kluges to make v6-alpha build
11:13 svnbot6 r12032 | audreyt++ | * updates the AUTHORS list with cpan ids
11:13 silug joined perl6
11:16 gaal|work audreyt, what did you do to make it work?
11:17 audreyt did what to what?
11:17 gaal ah that's better
11:17 gaal to the repo? I got errors when I tried to merge.
11:17 audreyt I don't know, I didn't merge
11:18 audreyt I hand patched and then commited
11:18 audreyt when in doubt use brute force etc
11:18 gaal oh, then there are some props to . that may have been lost.
11:18 gaal (I think.)
11:18 audreyt that's ust your merge history
11:18 audreyt that's fine
11:19 gaal what!? that makes 'merge' useless...
11:19 gaal suppose there were commits 1 2 3 4 5 6 7
11:19 audreyt "merge" is useless.
11:20 audreyt I've really never used that command :)
11:20 gaal 5,6,7 are bogus replays of 2,3,4
11:20 silug joined perl6
11:20 audreyt I revert textually
11:20 gaal merge 7:6, merge 6:5 -- fails
11:20 audreyt well
11:20 gaal with VERY SCARY error
11:20 audreyt svk "merge" does not track history _anyway_
11:20 audreyt the merge props are only consulted by smerge
11:20 gaal I was sure I messed up the upstraeam repo
11:21 audreyt probably just your internal repo is confused
11:21 gaal I very quickly moved over to an svn checkout to try to fix the problem
11:21 * clkao giggles
11:22 audreyt svk's "merge" should probably be renamed to "brokenmerge"
11:22 * rodi smerges
11:22 audreyt or something.
11:22 gaal but that gave weird stuff too: svn up -rX gave an update to a file that was really unrelated
11:22 audreyt wow.
11:22 audreyt your fsfs might be hosed somehow
11:22 audreyt hard to tell
11:22 gaal *my* fsfs? that was against trunk
11:23 aufrank joined perl6
11:23 aufrank #svk
11:23 aufrank whoops, sorry, I missed the buffer I was trying to type in =\
11:24 audreyt oh. svn up -rX.
11:24 audreyt hm.
11:24 audreyt I don't know. it looks fine here
11:24 gaal well, okay, i'll commit `1`+`42`, which workedforme this morning, when I get home.
11:25 audreyt yay!
11:25 gaal ...if my version control isn't borked.
11:25 audreyt ...hopefully it isn't
11:25 * gaal considers mailing diffs to random people from now on
11:25 * StudiesInWords puts gaal on the spammer list
11:26 gaal and if that fails, snailmailing printed copes of them
11:27 gaal wow, that's one place I never imagined myself ending up in...
11:28 gaal audreyt: anymoose, to more important matters. the coersion from str to num is kinda braindead -- there's a ByteString.readInt there so it's not very polymorphic
11:29 gaal but I figgered it was just a demo at first, so...
11:29 audreyt braindead is fine...
11:30 ludan joined perl6
11:31 gaal well I was hoping for 'read' to work, in :: Double context, but it didn't.
11:32 gaal apparently there needs to be some extra trickery to redispatch into Show...
11:32 audreyt Show does not define read
11:32 audreyt Read defines read :)
11:32 gaal huh.
11:32 audreyt and read takes String not PureStr
11:33 gaal yes, but we have ((:<:) String)...
11:33 gaal though of course it's better not to go via String at all.
11:34 gaal I suppose that means we will have to implement our own Num parser over ByteString anyway
11:34 svnbot6 r12033 | cmarcelo++ | * Judy.Hash: Use finalizer for Iter.
11:35 gaal so my simplistic approach is actually a good start
11:36 autark joined perl6
11:37 audreyt yup.
11:38 kane-xs_ left perl6
11:38 kane-xs_ joined perl6
11:38 kane-xs_ test
11:38 kane-xs_ odd...
11:47 cmarcelo should util/build_pugs or HsJudy.cabal install judy c library?
11:47 audreyt hmmm
11:48 audreyt I don't know :p
11:48 audreyt build_pugs I think?
11:48 gaal static linkage?
11:49 gaal and then "neither"
11:49 gaal how big is libjudy.a?
11:52 audreyt 583940 bytes here
11:54 audreyt static linkage  is fine.
11:54 audreyt we can trivially satisfy section 6a of LGPL.
11:54 gaal hmm, that's much larger than my guess!
11:55 audreyt pugs is 10456520
11:55 audreyt "pales in comparison"
11:55 cmarcelo that's odd.. 1_288_400 here... src/obj/.libs/libJudy.a
11:55 gaal pugs is a little more complex than judy :)
11:56 gaal cmarcelo: -g? different inlining schemes?
11:56 audreyt maybe
11:58 gaal hte sqlite on my box is smaller than that, though it's almost certainly stripped etc.
11:58 gaal anyway back to the joys of c++ for me...
12:00 cmarcelo ./configure sets -g by default? or is my env?
12:02 cmarcelo hmmm.... make clean; cd src; ./sh_build      # libJudy.a with 385k...
12:05 StudiesInWords 627_560 bytes here...
12:05 StudiesInWords What does that prove? :)
12:13 theorbtwo joined perl6
12:13 cmarcelo StudiesInWords: that we all have different machines+compilers? =o)
12:13 bsb joined perl6
12:14 cmarcelo audreyt: i'll see what can be done to link it statically via Cabal, then.
12:14 audreyt woot.
12:14 bpphillips joined perl6
12:24 cmarcelo audreyt: i think you forgot it.. but HsJudy now depends on GHC 6.5 (because of WordPtr)... still sure about committing?
12:25 cmarcelo audreyt: in fact, it always depended on 6.5 (WordPtr)..
12:26 Limbic_Region joined perl6
12:27 audreyt heh
12:27 audreyt you can work around that
12:28 Limbic_Region can someone who has done a recent checkout do a pugs -v and tell me the rev level reflected?
12:28 audreyt cmarcelo: use #ifdef to check ghc version
12:28 audreyt if it's not there
12:28 audreyt type WordPtr = (#type Word_t)
12:28 audreyt that's it.
12:28 audreyt or just define your own WordPtr ;)
12:28 audreyt but #ifdef may be saner.
12:29 * Limbic_Region 's rev level hasn't changed since 12005 despite having svn'd up and nmake'd several times
12:29 cmarcelo but i don't think i can reproduce functions of WordPtr that I use... (at start I spent a little time trying to get out of GHC 6.5)..
12:33 audreyt what functions?
12:33 audreyt ptrToWordPtr  and wordPtrToPtr ?
12:33 cmarcelo StablePtr only converts/casts to Ptr (), and I couldn't find something like wordPtrToPtr and ptrToWordPtr to make a bridge...
12:33 cmarcelo yes
12:34 rodi Limbic_Region: interestingly, mine is marked 11678, and has been updated a bunch of times since then.  I'm going to poke around and see where that's set.
12:34 audreyt ptrToWordPtr (Ptr a#) = (W# (int2Word# (addr2Int# a#))
12:35 justatheory joined perl6
12:35 audreyt wordPtrToPtr (W# w#)  = Ptr (int2Addr# (word2Int# w#))
12:36 audreyt the constructors should be visible once you import GHC.Ptr
12:36 audreyt I think
12:36 audreyt worst case...
12:36 * audreyt hands cmarcelo GHC.Exts.unsafeCoerce# :: a -> b
12:36 rodi Limbic_Region: do you have a /usr/bin/pugs as well as a /usr/local/bin/pugs?  Looks like that's some of my confusion here...
12:37 audreyt see, GHC is actually a weakly typed language
12:37 Limbic_Region rodi - I am on Win32
12:37 Limbic_Region and I don't do nmake install
12:37 cmarcelo audreyt: =D heheh
12:37 Limbic_Region so I only have a pugs.exe in the Pugs build directory
12:37 Limbic_Region rodi - my guess is, the rev level is *now* only updating after a realclean
12:37 Limbic_Region which IIRC, is not the behavior that it always exhibited
12:38 rodi Limbic_Region: makes sense to me.
12:38 Limbic_Region doesn't make sense to me though it would explain the current behavior
12:38 Limbic_Region or rather - that behavior doesn't make sense to me
12:38 audreyt Limbic_Region: try
12:38 audreyt rm src/Pugs/pugs_version.h
12:38 audreyt nmake src/Pugs/pugs_version.h
12:38 audreyt and see if it probes correctly
12:39 audreyt cmarcelo: but seriously, unsafeCoerce# should work here
12:39 audreyt so if the constructor route is blocked
12:39 audreyt try slapping uC# and see if it works
12:39 Limbic_Region yep - that worked audreyt
12:40 Limbic_Region though pugs -v is still showing 12005
12:42 audreyt ok. fixing
12:43 clkao fglock: t/00-grammar/01-pcr..............​...............................ok 5/30Can't locate object method "single_quoted" via package "Pugs::Grammar::Term" at t/00-grammar/01-pcr.t line 29.
12:43 cmarcelo audreyt: ok.. i'll look on it... i have to take a "break" now, i'll be back in about 8h..
12:43 audreyt cmarcelo: cool
12:45 cmarcelo audreyt: what's your ./pugs file size?
12:47 audreyt Limbic_Region: weird. what's the mtime for your .svn/entries?
12:47 gaal unsafeCoerce☣
12:48 cmarcelo gaal: what's your ./pugs file size?
12:49 gaal cmarcelo: don't have one handy right now, sorry -- apparently there was a powerout at home
12:50 cmarcelo 20M sounds reasonable?
12:55 gaal could be... check on feather?
12:55 cmarcelo audrey's is 10M apparently... i'll need to check that sizes later too..
12:57 gaal i bet there's a difference between optimized and non-, too.
12:58 cmarcelo gaal audreyt: what about a post on pugs.blogs about this new AST changes? ;-)
12:59 cmarcelo i have to go now, for real... see you later &
12:59 cmarcelo left perl6
12:59 gaal :) maybe after I get back from work. though I can hope audreyt beats me to it :)
12:59 xdg joined perl6
12:59 Limbic_Region audreyt just a sec, was lost in PerlMonks
13:03 Limbic_Region audreyt - 08/09/2006  08:06 AM             5,668 entries (from a dir)  let me know if you want exactitude using Perl's stat()
13:04 rodi is now known as rodi_away
13:05 fglock joined perl6
13:08 audreyt nah
13:11 fglock_ joined perl6
13:20 fglock_ clkao: checking...
13:24 clkao fglock_: also test.pm never finishes compiling
13:24 fglock_ k
13:24 svnbot6 r12034 | fglock++ | v6 - t/00-grammar/01-pcr.t - quotes now belong to Pugs::Grammar::Quote
13:26 fglock_ (changing network) &
13:26 fglock_ left perl6
13:28 fglock joined perl6
13:28 gaal joined perl6
13:29 hexmode joined perl6
13:34 Limbic_Region so any ideas audreyt?
13:34 Limbic_Region hey gaal, not sure if you backlogged but doing a realclean fixed the problem
13:34 Limbic_Region the interesting thing to me is that this is apparently not necessary on all platforms
13:41 fglock left perl6
13:41 bsb left perl6
13:41 fglock joined perl6
13:57 audreyt Limbic_Region: where is your Verison.o?
13:58 audreyt dist/build/src/Pugs/Version.o ?
13:59 jferrero joined perl6
14:01 ruoso joined perl6
14:03 justatheory joined perl6
14:04 Limbic_Region audreyt - work, will brb
14:08 audreyt k
14:17 xerox audreyt: hey
14:17 xerox audreyt: a friend of mine would like to implement his own language, I started advicing a simple lambda calculus evaluator, do you have better ideas? Since you ... eheh :)
14:18 audreyt lol
14:18 audreyt "his own language"?
14:18 audreyt try http://perlcabal.org/~nothingmuch/harrorth/doc/
14:18 lambdabot Title: Index of /~nothingmuch/harrorth/doc
14:18 rodi_away is now known as rodi
14:19 audreyt nothingmuch's forth journal
14:19 audreyt it's a decent language to implement
14:19 xerox Right
14:20 rodi odi-ray as-hay is-hay own-yay anguage-lay, oo-tay
14:20 elmex joined perl6
14:21 xerox audreyt: his language should me something like a lisp
14:21 audreyt scheme then
14:21 audreyt dynamic typing is cool
14:25 xerox That's a good idea.
14:25 xerox Scheme is very easy to implement.
14:25 audreyt by design :)
14:27 xerox Indeed.
14:30 Limbic_Region audreyt - \dist\build\Pugs
14:31 Limbic_Region there is no \dist\build\src\Pugs
14:31 audreyt that's why.
14:33 Limbic_Region ok - so what now?
14:33 Limbic_Region oh, and completely OT - can anyone tell me why a box not running DNS would be requesting a zone transfer?
14:34 audreyt fixed!
14:34 audreyt Limbic_Region++ # thanks for the efficient debugging help
14:34 svnbot6 r12035 | audreyt++ | * reflect version into in pugs by correctly unlinking
14:34 svnbot6 r12035 | audreyt++ |     dist/build/Pugs/Version.o
14:34 svnbot6 r12035 | audreyt++ |     dist/build/Pugs/Version.hi
14:34 svnbot6 r12035 | audreyt++ |   Reported by: Limbic_Region++
14:34 audreyt so please rm src/Pugs/pugs_version.h
14:34 audreyt for one last time
14:35 audreyt and then "nmake"
14:35 audreyt should reflect the new version in pugs
14:35 Limbic_Region in process now
14:35 Limbic_Region any idea on the DNS zone transfer question?
14:37 audreyt "I don't see why" is the answer.
14:37 Limbic_Region audreyt - no go
14:37 Limbic_Region my svn up of 12035 only included the following
14:37 Limbic_Region U    perl5\Pugs-Compiler-Perl6\t\00-grammar\01-pcr.t
14:37 Limbic_Region U    util\version_h.pl
14:37 audreyt when you "nmake"
14:38 audreyt did you see something about
14:38 Limbic_Region ah, haven't done a full nmake - just the nmake version.h
14:38 audreyt Current version is ...
14:38 audreyt ?
14:38 audreyt oh.
14:38 StudiesInWords "Cannot determine perl version info from lib/Pugs/Grammar/MiniPerl6.pm" normal?
14:38 audreyt "nmake pugs.exe" or something
14:38 audreyt StudiesInWords: add a $VERSION in it?
14:38 StudiesInWords 12035 creates src/Pugs/pugs_version.h with 12035
14:38 Limbic_Region C:\Perl\bin\perl.exe -Iinc util\version_h.pl src\Pugs\pugs_version.h
14:38 audreyt (do you have a commit bit?)
14:38 Limbic_Region Writing version from C:/Pugs/.svn/entries to src\Pugs\pugs_version.h
14:38 Limbic_Region yes
14:39 audreyt (that was asking StudiesInWords)
14:39 Limbic_Region though I haven't tried it since they added a firewall on top of the proxy
14:39 StudiesInWords nope
14:39 Limbic_Region oh, sorry
14:39 StudiesInWords (and no license info either)
14:40 Limbic_Region ok, related OT question - if a machine is running DNS, can anyone think of a reason it would be attempting to do a zone transfer with a root DNS on the internet despite not having any external zones defined?
14:41 audreyt StudiesInWords: what's your email addr?
14:41 audreyt I'lld send you a commit bit
14:41 StudiesInWords "Warning: prerequisite Pugs::Compiler::Rule 0.13 not found."  I have to install that seperately from "pugs/perl5/Pugs-Compiler-Rule", right?
14:41 StudiesInWords What is a commit bit?
14:42 Limbic_Region it allows you to check in changes to the Pugs repository
14:42 Limbic_Region so others can benefit from your contributions
14:42 rodi uh oh.  Now you've done it, StudiesInWords ;)
14:42 Limbic_Region and alleviating people like audreyt from stopping their work to commit yours
14:43 * Limbic_Region is infamous for bitching about problems that others fix and then end up comitting too
14:43 Limbic_Region therefore - I am not a good role model
14:44 StudiesInWords "t/11-parsec.t  255 65280    10   19  1-10" not good
14:45 fglock StudiesInWords: pcr/parsec is work in progress
14:45 svnbot6 r12036 | fglock++ | v6 - fixed deep recursion while parsing 'pod'
14:45 fglock clkao: Test.pm parses again
14:45 StudiesInWords (i'm new, just hit me on the nose with a newspaper if i'm a nuisance...)
14:46 Limbic_Region audreyt - after doing an nmake I am now showing the proper rev level - will let you know after the next check-in if the problem is 100% fixed
14:46 Limbic_Region oh, and there it is
14:50 fglock audreyt: is it ok to move pcr/parsec to MiniPerl6?
14:51 audreyt StudiesInWords: welcome abaord :)
14:51 audreyt fglock: you want to ask scw
14:51 fglock k
14:51 audreyt but the pugs commit rule is "ask for forgiveness later"
14:51 audreyt so if it makes things easier, go ahead :)
14:51 fglock no hurry :)
14:52 * audreyt goes sleeping -- $job day tomorrow, and then free for another 3 days of pugshacking
14:52 fglock do you know how to make t/Test.pm precompile in Makefile.PL ?
14:52 audreyt and maybe finally I'll pick up journaling :)
14:52 Limbic_Region sleep well audreyt
14:52 audreyt fglock: perl -c t/Test.pm
14:53 vel joined perl6
14:53 audreyt perl has a compile flag!
14:53 audreyt use it! :)
14:53 fglock thanks!
14:54 scw what's up? :)
14:54 cjeris joined perl6
14:55 scw oh, the 11-parsec.t? I'll take a look..
14:55 fglock scw: hi!
14:55 Qiang joined perl6
14:56 scw fglock: hi, I think 11-parsec.t is not the correct way to test parsec emitter
14:56 scw It should really feed the haskell code to ghc and run on some input
14:56 scw but now I could only put some 'should work like this' result :(
14:57 fglock scw: how about moving to MiniPerl6 (if you think it might belong there)
14:57 scw fglock: what do you mean?
14:58 scw fglock: PER::Parsec should belong to P::C::R
14:59 fglock ok - sorry for the confusion
14:59 audreyt hm. VB has a pragma to turn off implicit coercion
14:59 audreyt I wonder if perl6 can, if lexically turned off implicit coercion
15:00 fglock audreyt: is there a way to do conditional recompilation? -c seems to recompile everytime
15:00 audreyt somehow make "if '' { 1 } else { 2 }" return 2
15:00 audreyt fglock: just omit -c?
15:00 audreyt hm, not sure.
15:01 audreyt oh
15:01 audreyt in Module::Install::PMC
15:01 audreyt    File::Find::find( sub {
15:01 audreyt        push @pmcs, $File::Find::name if /\.pmc$/i;
15:01 audreyt    }, 'lib');
15:01 audreyt if you change
15:01 audreyt 'lib'
15:01 audreyt to 'lib','t'
15:01 audreyt then it should work automagically
15:01 audreyt ingy: you okay with that change?
15:01 audreyt fglock: you can make that hcange locally first
15:02 fglock k
15:02 audreyt I really need to crash now :0 bbl
15:02 fglock audreyt: good night
15:02 Limbic_Region audreyt - fixed - thanks
15:07 marmic joined perl6
15:08 scw fglock: compile_p6grammar.pl fails to parse Pugs-Grammar-MiniPerl6/lib/Pu​gs/Grammar/MiniPerl6.grammar
15:08 scw fglock: that makes PER::Parsec fail to translate closure...
15:09 fglock scw: I'll take a look
15:10 spoop joined perl6
15:12 svnbot6 r12037 | fglock++ | inc/Module/Install/PMC.pm - added 't/' in order to compile Test.pm
15:12 svnbot6 r12038 | fglock++ | v6 - added Perl6Prelude.pmc and Test.pmc to MANIFEST
15:17 fglock scw: this will need some work - I'll try to compile with v6.pm instead
15:19 hexmode joined perl6
15:19 scw I really should have my .pm file backuped :(
15:19 plisk joined perl6
15:19 scw don't know if there are any other changes effecting the test suit :(
15:20 fglock scw: you can install a previous PCR from cpan if needed
15:21 scw fglock: I'll do that if compile_p6grammar.pl still don't work tomorrow morning
15:21 scw fglock: err... say, 11 hours later
15:22 kanru joined perl6
15:22 scw fglock: however, I only found the mistranslated closures when my .pm was not overriden
15:22 fglock scw: if v6.pm compiles it, you can proceed programming in pure perl6 :)
15:23 scw fglock: do you mean using pure perl6 in closure? (or, production rule?)
15:23 fglock yes
15:23 scw fglock: cool!
15:24 * scw going home *wave*
15:25 crem_ joined perl6
15:26 fglock scw: it parses with v6.pm until line 53 - I'm checking
15:28 weinig joined perl6
15:30 fglock lunch &
15:38 aufrank joined perl6
15:54 weinig joined perl6
15:56 gaal is perl5/Pugs-Compiler-Perl6/t/01-sanity etc. generated?
15:57 gaal why does it always appear as '?' in svk st otherwise?
15:57 clkao because it's copied over from t/
15:57 clkao when listed in manifest
15:58 gaal so can we svn:ignore it?
16:02 clkao maybe
16:02 clkao perhaps we should but those from t/ in different directory?
16:02 clkao so we just ignore that one
16:04 gaal there are about 10
16:04 gaal directories that show up in perl5/Pugs-Compiler-Perl6/t
16:04 gaal as '?'
16:04 clkao ya. but we will be adding more to manifest when things pass
16:05 clkao so probably make the script copy to t/pugs-t rather than just t/
16:05 clkao then we ignore pugs-t
16:08 gaal sounds like a plan
16:15 svnbot6 r12039 | fglock++ | v6 - added perl5/Pugs-Compiler-Perl6/MiniPerl6.grammar - pure-perl6 version; parses but doesn't emit yet
16:16 clkao ooo
16:22 Psyche^ joined perl6
16:22 Psyche^ is now known as StudiesInWords
16:30 fglock clkao: now it compiles!
16:30 svnbot6 r12040 | fglock++ | v6 - plain-p6 MiniPerl6.grammar compiles!
16:32 m0213 joined perl6
16:34 gaal `1`+`2` landed, for real.
16:34 svnbot6 r12041 | gaal++ | * Pugs.Val.Num and simple coersion triggered from oldspace.
16:34 svnbot6 r12041 | gaal++ |   `1` + `41` constructs two newval PureStrs, and the fromVV /
16:34 svnbot6 r12041 | gaal++ |   ICoercible classes figure out how to get numbers of them.
16:39 clkao that's crazy
16:40 lichtkind is anybode here who is also write any kind of docu for pugs or perl6 ?
16:43 gaal clkao: what
16:43 svnbot6 r12042 | fglock++ | v6 - clear a few warnings in emitter
16:44 gaal gah, I need to apply coercion on myself to stop mispelling "coercion".
16:44 fglock v6.pm is fast enough that I can run tests again :)
16:44 gaal yay!
16:45 gaal lichtkind: what are you looking for?
16:46 lichtkind gaal i like to know with who to talk and where might be conflicts since skud isnt interested in these things
16:46 audreyt gaal: svkaddNum
16:46 gaal eep
16:48 gaal lichtkind: i think just mention what you're working on in the channel and go ahead
16:48 svnbot6 r12043 | gaal++ | * add missing file
16:48 gaal audreyt: ci'ed
16:49 gaal audreyt: some boilerplace as you can see in the Vs :(
16:49 gaal what additional types should I work on? fill in Pure?
16:49 gaal s/place/plate/
16:52 lichtkind gaal i just talked with audrey but you now im mostly a social guy who also likes to know what other people think
16:52 audreyt gaal: moose, I still think solving circularity is worth trying
16:53 audreyt but yeah, fleshing out pure may be nice
16:53 gaal sure, I'm saying there's no docmaster or antything like that. If you want to work on something -- great! -- just say so on the channel so to avoid conflicts like you say
16:53 audreyt adding Inf support to Integer?
16:53 audreyt porting more CapInternals over to Pure
16:53 gaal hmm, there's no way to induce an integer right now... have to think of one :)
16:53 audreyt and think of ways to reduce boilerplate
16:54 gaal bunching all Pure in one file can help a little bit :-p
16:54 audreyt well, you can make a toVV ;)
16:54 gaal triggered how from surface?
16:54 audreyt you mean Pugs.Val.Pure?
16:54 audreyt as a Prim
16:54 gaal yes.
16:54 audreyt "vv()"
16:54 audreyt something
16:55 gaal oh ok
16:55 audreyt well, if you think that's saner... go ahead :)
16:55 gaal vv(42) can indeed induce PureInt
16:55 audreyt the number of Pure types are large though
16:55 audreyt I don't know the answer yet
16:55 audreyt if we can somehow put instances in Val.Str
16:55 prefiks joined perl6
16:55 audreyt then that sounds cleaner
16:56 gaal yeah... but as long as the Coercible instances aren't in the various modules, it doesn't matter much because the various moduels are all so small
16:56 audreyt but anyway, that's not showstopper
16:56 gaal all instances in Str? why?
16:56 audreyt Coercible and the types it uses can maybe put one place
16:56 gaal because that's the most useful one or debugging?
16:56 audreyt I mean Str instances in Str
16:56 rlb3_ joined perl6
16:56 audreyt and Int in Int
16:56 audreyt etc etc
16:56 gaal yeah.
16:56 xerox audreyt: if you are interested I have mailed cabal-devel with the current plan and status, I need lots of feedback :) Thanks!
16:56 gaal well #haskell didn't have an idea bout that problem either....
16:57 audreyt xerox: np. :D
16:57 gaal maybe I can try again now, different timeslice.
17:04 audreyt don't try too hard :)
17:04 audreyt filling in the pure types = more fun
17:04 rashakil_ joined perl6
17:06 gaal In general will there be n*m "as" methods?
17:06 gaal or can we get some for free?
17:07 gaal ICoercible slots x Pure instances
17:08 audreyt m = fixed
17:08 audreyt Coercible only cares about that many
17:08 audreyt none of the others has implicit coercions
17:08 audreyt perl6 doesn't have other implicit coercions
17:09 gaal nod
17:10 TimToady audreyt: what do you think about .META, .VAR, and .VAL as "coercions"?
17:10 * Limbic_Region wonders what happened to audreyt sleeping?
17:10 svnbot6 r12044 | audreyt++ | * Implicit coercion to int and to bool for PureStr VV.
17:11 audreyt TimToady: I think dotpostfix macros is a concept we don't yet have.
17:11 gaal Limbic_Region: all the signs are that she's sleeping peacefully.
17:11 TimToady that's why I was talking about .Type earlier
17:11 TimToady to go with Type()
17:12 audreyt aye. the thing is, why the .new form then?
17:12 TimToady I'm just thinking they'll namespace better if we uppercase them and put them into typespace rather than method space.
17:12 audreyt my Point $p .= (x =>1, y => 2);
17:12 Limbic_Region gaal - did you get the note about the realclean
17:12 TimToady how.
17:12 TimToady i mean, yow
17:12 audreyt if you carry this to logical conclusion (type name as constructor with multi forms to handle coercion)
17:13 gaal Limbic_Region: yes. if you manage to figure out what characterizes the cases when you need it, please tell
17:14 audreyt I think the idea is sound. I like META/VAR/VAL. I wonder about List/VAL
17:14 TimToady VAL is old .valid
17:14 audreyt ahhh.
17:14 audreyt so still List/Item
17:15 audreyt good.
17:15 TimToady yeah, those are real types.
17:15 TimToady or contexts...
17:15 audreyt contexts are type annotations on the return signature...
17:15 audreyt then I like META/VAR/VAL a lot.
17:15 audreyt not entirely sure abou tthe postfix dor form
17:15 audreyt dot
17:16 audreyt since it usually carries a notion about runtime dispatch
17:16 audreyt i.e. if userdefine method VAR
17:16 audreyt then would it get a say?
17:16 audreyt obviously wouldn't
17:16 audreyt $scalar.VAR wouldn't care about content
17:16 audreyt might be visually confusing.
17:17 TimToady that's why I was wondering about which classes might consider themselves macros
17:17 TimToady on the other hand it's good to have some kind of postfix form.
17:17 TimToady and we already have the foo() vs .foo failover
17:17 audreyt I think .Class is clear
17:17 TimToady but that's runtime.
17:18 audreyt or .Type
17:18 audreyt depending on which side of the phases ou'd like to emphasize
17:18 audreyt but idea is "you can always ask a Type out of a value"
17:19 audreyt also, we said that userdefined class should be able to override .valid
17:19 audreyt to pretend to be value
17:19 TimToady well, I suppose we could just say that .Type is runtime dispatch, and if you're willing to take the optimizer hit to write it that way...
17:19 audreyt but then VAL the macro wouldn't have the info
17:19 audreyt right. I think that's saner
17:19 TimToady and you write VAL() for macro or .VAL for runtime.
17:19 audreyt yes.
17:19 lichtkind sorry i could not follow all depails last month
17:20 lichtkind TimToady is anything noticeable changed in perl design principles since your talk in israel ?
17:20 TimToady then we just say that you get .VAL for free when it fails over to VAL() at runtime
17:20 audreyt yes. since we have  macro reeval rule.
17:21 TimToady and then a class can override .META but not META
17:21 audreyt and .VAR is... well not really possible :)
17:21 TimToady META()
17:21 TimToady not sure if that makes sense.
17:22 TimToady (at compile time)
17:22 audreyt that would be asking the inferred type
17:22 audreyt most of time Any
17:23 audreyt I think I like TypeNaming the various builtin casters
17:23 TimToady but if META() is runtime but not dispatched, we get the object's idea of meta, not the ancestor's
17:23 audreyt if only to reduce possible conflicts with normal methods
17:23 TimToady it also is EXTRAORDINARY
17:24 TimToady and discourages people from writing $x.VAL eq $y.VAL
17:24 audreyt agreed on all accounts
17:24 TimToady okay, go to bed. :)
17:25 audreyt so: those EXTRAORDINARY macros stay as handcoded macros
17:25 audreyt they are not proper types anyway
17:25 audreyt (can't use them to construct stuff)
17:25 TimToady certainly not VAR
17:25 audreyt VAL.new VAR.new META.new
17:25 audreyt doesn't make any sense.
17:25 audreyt and normal type stuff
17:25 audreyt Int($x) $x.Int
17:25 TimToady unless META is the name of MetaClass
17:25 audreyt follows normal runtime dispatch rule
17:26 audreyt but MetaClass is just Class
17:26 audreyt unless you think Class derives from Meta
17:26 audreyt which is ine, but then it should be called Meta() not META()
17:26 TimToady META doesn't commit to whether the thing on the other end is a class.
17:26 audreyt since unlike VAL/VAR, you can actually ask for Meta.new
17:26 audreyt (if interpreted that way)
17:26 audreyt oh. I see what you mean
17:27 audreyt you are saying that "this has a vtable" doesn't say anything about the concrete contract
17:27 TimToady nod
17:27 audreyt and as such META.new wouldn't do anything
17:27 audreyt ok. then META is fine.
17:27 TimToady k, other thing is whether VAR and VAL are too alike
17:28 audreyt ID :)
17:28 TimToady and the fact that they're not really opposites.  VAR($x), $x, and VAL($x) may be three different things.
17:28 TimToady thought about ID, but I think not.
17:28 TimToady VID maybe
17:29 audreyt VID VAR
17:29 audreyt VAL VAR
17:29 audreyt I think either is fine. all-uppercase is hard to get wrong
17:30 audreyt I also think this classless/pluggable-object-system intuition of yours is looking like more and more like a good idea.
17:30 audreyt I furrther think I need to sleep :) *wave*
17:30 TimToady *handwave*
17:30 xerox Later!
17:33 * fglock wonders what was being explained with "*handwave*"
17:35 TimToady these aren't the 'droids Audrey was looking for...
17:35 buubot joined perl6
17:36 buu is now known as buubot
17:37 buubot is now known as buu
17:37 audreyt oh. one last thing.
17:38 audreyt TimToady: two-way fallback.
17:38 audreyt close($fh) try sub first fallback to meth
17:38 audreyt $fh.close try meth first fallback to sub
17:38 * gaal tries out new vim7 builtin tabs
17:38 audreyt fallout: return($x) calls the lexically bound &return first.
17:39 audreyt outside subs there's simply no &return in scope
17:39 audreyt pro: no longer have to explain why return($x) works differently from close($fh)
17:39 audreyt (since "method return" should _not_ fire on return($x))
17:40 audreyt con: the no-fallback form, &close($fh), is a bit subtle to explain.
17:40 audreyt but I think it's the sanest strategy I can come up with :)
17:40 audreyt </braindump>
17:41 buubot joined perl6
17:41 audreyt (that's just one-arg... f($x, $y) never calls $x.f($y))
17:41 jferrero joined perl6
17:42 audreyt &
17:42 m0213 left perl6
17:52 TimToady audreyt: or there's just always a return() in scope that fails where inappropriate.  In fact, it's probably a macro outside of subs so it can fail at compile time.
18:16 pdcawley joined perl6
18:21 * pdcawley is having a brainfart... I know how to set a trait on something, but for the life of me I can't remember how you access its value later...
18:23 PerlJam pdcawley: pretend it's a method
18:23 pdcawley Ah... it hasn't changed then, cool.
18:23 pdcawley :)
18:30 bernhard joined perl6
18:50 svnbot6 r12045 | fglock++ | v6 - minor fixes to pod parsing
18:50 svnbot6 r12046 | fglock++ | v6-Compiler - Grammar/Native.pm compiles with v6.pm
18:50 aufrank fglock: big day for you!  this is really exciting stuff you're getting to now!
18:51 fglock aufrank: :)
18:51 fglock it's a long way ahead
18:51 aufrank do you have a basic roadmap, or are you in low-hanging-fruit mode?
18:52 aufrank (or are you on pick-the-funnest-route mode)?
18:52 obra what's v6's test passing look like right now?
18:53 aufrank fglock: re: "it's a long way ahead", do you mean you're further along than you expected to be?  or that significant progress is a long way off yet?
18:53 fglock aufrank: there are HACKING and README files in v6/ - but the plan needs more work
18:53 weinig joined perl6
18:54 fglock aufrank: both a long way ahead & behind, I guess :)
18:54 aufrank well, it seems to me like you're doing great
18:54 aufrank :)
18:55 fglock obra: it passes above 1000 tests (from >10k)
18:56 obra cool
18:56 fglock obra: it's already possible to write p6-on-p6 using it
18:56 obra cool :)
18:56 fglock I mean, I think it is
18:57 fglock I'm trying to prove it :)
18:59 weinig joined perl6
19:01 fglock v6-Compiler only compiles native values for now - but the architecture allows interoperation with the current working compilers, so it can be expanded step-by-step
19:02 clkao want dynamic rule parser that i can push/pop rules
19:03 fglock so you can have a single compiler and the backends are just... backends
19:04 fglock clkao: sorry?
19:06 clkao remember the mutating parser
19:06 clkao when you have a infix declared
19:08 hexmode` joined perl6
19:09 fglock clkao: you can call Pugs::Grammar::Infix->add_ru​le(name/assoc/precedence...) and then Pugs::Grammar::Infix->recompile will recalculate the grammar tables
19:10 fglock recompile() can be optimized, if it is too slow
19:11 clkao but remove rule?
19:11 fglock localizing Pugs::Grammar::Infix::hash should keep the modification in scope
19:11 fglock moving out of scope should remove the rule
19:12 fglock but you could also just delete the hash entry
19:13 clkao ah
19:15 Ovid joined perl6
19:15 fglock you may need to localize Pugs::Grammar::Operator::hash too - it is used by the precedence parser
19:17 fglock <%operator> = <%infix|%prefix|%postfix|%circ​umfix|%postcircumfix|%ternary>
19:17 merlyn no "%smooth" ?
19:18 fglock no, that's a term :)
19:18 merlyn hmm.  you might not be familiar with the song by Sadé called "Smooth Operator"
19:18 fglock oh sure :)
19:19 merlyn ... http://en.wikipedia.org/wiki/Sade_%28band%29
19:20 cjeris ... the source of an infinite stream of bad partial-differential-equations jokes.
19:21 fglock "No place to be ending but somewhere to start" - yes, it sounds like a parser thing
19:21 buetow joined perl6
19:27 fglock I need some examples of using roles and ->does() with Moose
19:29 jferrero joined perl6
19:31 fglock I'll take a look at the Moose test suite
19:38 svnbot6 r12047 | fglock++ | v6 - 'role' calls Moose::Role
19:40 fglock what is '.does()' called in Moose land?
19:42 bpphillips fglock: I think it's does() (see http://search.cpan.org/~stevan/Moos​e-0.11/lib/Moose/Object.pm#METHODS)
19:42 lambdabot Title: Moose::Object - The base object for Moose - search.cpan.org
19:42 jferrero joined perl6
19:43 stevan fglock: which does?
19:43 stevan Foo does Bar?... that is with()
19:44 stevan Foo->does(Bar)
19:44 stevan that is does
19:44 fglock stevan: I need '$object does Role'
19:44 Ovid Does Foo->does(Foo) return true?
19:44 stevan fglock: sorry,.. not supported yet
19:44 stevan Ovid: good question
19:45 stevan assuming Foo is a role, I think it does
19:45 fglock should I create an internal class to implement it?
19:45 Ovid chromatic raised this point and I think he's correct that it should.
19:45 stevan fglock: we are working on cleaning up the Role internals right now, so supporting that is still a little way away
19:45 Ovid Can you extract roles from classes?  That would be helpful and means that classes and roles aren't too dissimilar.
19:46 stevan Ovid: well, we are actually going somewhat in the opposite direction
19:46 Ovid What?  Extracting classes from roles?  I don't understand.
19:46 stevan in the end the plan is for Class.does(Role) and Role.does(Role)
19:46 stevan so that classes and roles are mostly interchangable
19:46 stevan this is not a user-land level thing though
19:46 stevan shhh keep it under your hat ;)
19:47 Ovid What about Role.does(Class)?
19:47 stevan nope
19:47 stevan although it could
19:47 stevan but I think that is getting to circular
19:47 stevan Role is an instance of Module, which is a superclass of Class
19:47 stevan uhr sorry
19:47 Ovid I agree, but I do think that Foo.does(Foo) should return true.  That's particularly important in systems where those things aren't hard-coded.
19:47 stevan Role is an instance of Class, but a subclass of Module
19:48 fglock stevan: I need 'return $/ does v6::AST::NFloat' - I could create a class that 'is' Match and 'does' v6::AST::NFloat, and the set $/ to it
19:48 stevan Ovid: I totally agree
19:48 stevan fglock: sorry Moose does not support that kind of stuff yet
19:48 stevan Timbunce wants it too
19:48 Ovid Moose++
19:48 stevan but I want to make sure its done right
19:49 stevan I have written/implementd roles/traits too many times now,.. I want this to be the last one :)
19:49 pmurias joined perl6
19:49 Ovid heh :)
19:49 pmurias any one here going to YAPC::Europe/
19:50 Ovid I am.
19:50 wolv joined perl6
19:50 stevan Ovid: In Moose::Meta::Role -> return 1 if $role_name eq $self->name;
19:50 Ovid Ah, good.
19:50 wolv sorry I'm slow, but is feather's connectivity sucking lately?
19:50 stevan now, for classes this (currently) wont work
19:50 stevan FooClass->does(FooClass)
19:51 stevan but eventually it might (I have to ponder it some more)
19:51 wolverian hrm, well, I guess it works now. sigh :)
19:51 stevan see when we combine attributes and their autogenerated accessors, those will be a mini-role
19:52 jferrero joined perl6
19:55 stevan which will be implicity combined with the class
19:56 pbuetow joined perl6
19:56 pmurias Ovid: i'm propably not going, while i'm in England on a camp till 26 and i won't have anything to do for 4 days :(
19:56 stevan at which point the class will behave as a role, so that it does not just roll over when there is a conflict
19:57 Ovid bummer.  It should be a great conference.
19:57 Ovid stevan, that sounds like an interesting approach.
19:58 stevan Ovid: it solves a number of edge cases we found when combining roles with attributes
19:58 stevan role with attributes are something no one wants to touch right now, the traits guy told me "good luck with that, let me know how it turns out"
19:58 Ovid heh :)
19:59 * justatheory agains weighs s/Class::Meta/Moose/ in Object::Relation
19:59 frederico joined perl6
19:59 stevan justatheory: come one man,.. all the cool kids are doing it,.. you wanna try it ,.. first hit is free ;)
19:59 justatheory Baby!
19:59 Ovid Well, if you did that, I suspect the 'buzz' from Moose would help Object::Relation.
19:59 justatheory stevan: I need to find some tuits to really explore Moose
20:00 Ovid Anyway, any chance there will be a tutorial out soon?
20:00 justatheory To see if it does what I need, and if not, that I can add it.
20:00 justatheory Ovid: True.
20:00 stevan justatheory: did you say the other day in #moose that you are in the ny area?
20:00 justatheory stevan: Yes, I hung with NYC.pm last night.
20:00 justatheory Are you here?
20:00 stevan I am in CT,.. just up the highway
20:00 justatheory I leave tomorrow.
20:00 stevan ah
20:00 stevan oh well
20:00 Ovid So much for a hackathon.
20:00 justatheory stevan: Ah. Wanna come down for dinner tonight?
20:01 stevan justatheory: I am still in my pajamas :)
20:01 stevan working from home ++
20:01 Ovid theory likes that.
20:01 justatheory stevan: You have *hours*
20:01 justatheory Ovid: Don't give away our little secrets!
20:01 Ovid Oops.  Sorry.
20:01 stevan I am not sure the boss/wife would allow it ;)
20:01 stevan there is always SubEtha :)
20:01 Ovid Hmm, just looked at my vim aliases and saw 'alias sprove='KINETIC_SUPPORTED=sqlite kprove''
20:02 justatheory stevan: I guess I still have it.
20:02 Ovid (theory knows that what that is) :)
20:02 justatheory Ovid: :-D
20:02 justatheory That's dead.
20:02 Ovid I should clean up my .vimrc
20:02 justatheory After you left, I tagged the branch and then gutted the shit out of it.
20:02 justatheory As you can probably tell.
20:02 justatheory Oh, and Kineticode's svn is (mostly) open now, for anonymous checkouts
20:02 Ovid Yeah, I noticed that.  Still, it's great to see that it's still hanging on, if only briefly.  Any benchmarks?
20:03 justatheory benchmarks? We don't need no stinking benchmarks!
20:03 justatheory Ovid: No tuits
20:03 Ovid As for gutting, I didn't see Catalyst in there.  Probably a good thing.  I think my Catalyst stuff probably wasn't very good/useful.
20:04 justatheory Yes, I took out all of the "framework" stuff. It's just an ORM now.
20:04 justatheory Or mostly, anyway.
20:04 Ovid By the way, I assume you've seen http://hiveminder.com/?
20:04 lambdabot Title: Hiveminder - Get busy!
20:05 justatheory Ovid: Yeah, Jessie gave me an account ca. 6 months ago.
20:05 Ovid lambdabot?
20:05 justatheory Haven't really had time to explore it yet, though.
20:05 justatheory Oops, Chauncey is back. Back to wokr.
20:05 justatheory work
20:05 justatheory (He can see what you type, so be careful what you say!)
20:05 Ovid Oh, tell Chauncey I said 'hi'
20:05 Ovid :)
20:05 justatheory He says, "Hello"
20:05 Ovid No worries.
20:06 * justatheory hides the IRC window
20:06 Ovid Actually, tell everyone I said 'hi'. Hope that's working out well.  Anyway, I need to run about to my perl testing macros for vim.  Cheers!
20:06 justatheory Chauncey is the only one left!
20:06 justatheory That you knew
20:06 justatheory bye
20:07 Ovid Lynne's gone?  Alexandra (whatever his name was) is gone, too?
20:07 justatheory Yes, both gone
20:07 justatheory Lynne to Fast Company, Al to Nylon.
20:07 Ovid Wow.  OK, this time I really do have to run.  Have fun and tell Julie I said hi (oh, wait, did you get my postcard?)
20:08 justatheory yes, we did. Thanks!
20:08 crem joined perl6
20:08 justatheory Very sweet. It's so 19th century!
20:08 Ovid OK, just checking. Yeah, it's pretty cool here.
20:08 Ovid And this time I *am* leaving.  Bye! :)
20:10 froh-doh in one of the "translation" examples (matrix.p[56]) there is this translation:
20:10 froh-doh my $matrix = shift || <>; # 5
20:11 froh-doh my $matrix = @*ARGS[0] || =<>; # 6
20:11 froh-doh I've seen that @ARGS[0] works as well, but is correct?
20:12 froh-doh s/is/is it/
20:12 stevan froh-doh: @*ARGS is just being more specific ,.. thats all,.. IIRC it is saying "use the global/special @ARGS"
20:13 froh-doh oh, is this in "Synopsis 9: Data Structures" ?
20:13 * froh-doh searches
20:15 froh-doh nope, S02
20:18 _bernhard joined perl6
20:19 bpphillips left perl6
20:26 svnbot6 r12048 | fglock++ | v6 - fixed 'rx' parsing - t/data_types/hash.t compiles again
20:34 crem_ joined perl6
20:35 SageLT joined perl6
20:39 crem_ joined perl6
20:42 fglock joined perl6
20:48 svnbot6 r12049 | fglock++ | v6 - changelog for 0.013
20:51 svnbot6 r12050 | fglock++ | PCR - changelog for 0.14
20:55 bernhard joined perl6
21:06 svnbot6 r12051 | fglock++ | v6 - updated Makefile.PL, MANIFEST for 0.13
21:06 fglock v6-alpha-0.013 is in CPAN - it contains a hacked Module::Install, I hope it works
21:09 fglock joined perl6
21:09 fglock joined perl6
21:12 xinming joined perl6
21:14 fglock audreyt: please add me and clkao to Pugs::Grammar::P6Rule co-maint in pause
21:20 ryan_ joined perl6
21:23 ryan_ left perl6
21:24 justatheory joined perl6
21:27 svnbot6 r12052 | Sage++ | Added a missing nodetype to the translator definition of a P5AST.
21:27 svnbot6 r12053 | Sage++ | Some updates to node types and come cleanup.
21:27 rashakil__ joined perl6
21:33 svnbot6 r12054 | Sage++ | Added translations for @EXPORT and @EXPORT_OK (but only functions are handeled). Lines tat assign to @EXPORT are not deleted at this point, but "is export" is added to functions (with (:MANDATORY) for @EXPORT).
21:33 svnbot6 r12054 | Sage++ | Variables are now handeled inside literal text (so print "$array[1]" now becomes print "@array[1]" and so on).
21:33 svnbot6 r12054 | Sage++ | Print and printf with a file are handeled (they get a comma between the file and everything else).
21:35 jferrero joined perl6
22:06 cmarcelo joined perl6
22:06 fglock left perl6
22:12 weinig joined perl6
22:27 xinming joined perl6
22:30 weinig joined perl6
22:32 cjeris left perl6
22:41 larsen joined perl6
22:58 dbrock left perl6
22:59 tup joined perl6
23:14 diakopter joined perl6
23:37 Khisanth joined perl6
23:38 mauke_ joined perl6
23:39 justatheory joined perl6
23:53 mauke_ is now known as mauke

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

Perl 6 | Reference Documentation | Rakudo