Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2007-02-27

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:00 dmq 60 messages a minute?
00:01 dmq oh, no, im an idiot. never mind.
00:01 dmq whats that with eric256?
00:01 dmq SA?
00:04 eric256 yea spam assassing, buts its estimate now varies between 15 minutes and an hour..i haven't done the math myself yet
00:04 rodi joined perl6
00:05 eric256 now i just have to figure out if i can mirror my baysian database between two systems.. no since in having to train both
00:07 dmq Justin Mason was looking into changing how SA works to exploit the new regex features.
00:08 dmq I should probably see how its going.
00:08 dmq hopefully it will see a nice performance increase.
00:08 dmq anyway, have a good one, im off to bed.
00:16 devogon joined perl6
00:22 polettix joined perl6
00:29 Debolaz joined perl6
00:35 nipotaway is now known as nipotan
00:43 gnuvince joined perl6
00:47 drrho joined perl6
01:06 weinig is now known as weinig|bbl
01:09 lambdabot joined perl6
01:28 Ziggy6 left perl6
01:28 Ziggy6 joined perl6
01:31 Ziggy6 left perl6
01:31 Ziggy6 joined perl6
01:32 Ziggy6 left perl6
01:34 Ziggy6 joined perl6
01:46 qmole joined perl6
01:50 Ziggy6 left perl6
01:51 Ziggy6 joined perl6
01:57 macroron joined perl6
02:00 Ziggy6 left perl6
02:01 gaal joined perl6
02:06 b00t joined perl6
02:15 GabrielVieira2 joined perl6
02:18 dmq joined perl6
02:30 qmole joined perl6
02:36 svnbot6 r15369 | lwall++ | parse the subscriptlike shape declaration on variable declarators
02:36 svnbot6 r15369 | lwall++ | allow sublongnames and shaped declarators as parameters
02:36 svnbot6 r15369 | lwall++ | random cleanup
02:41 Ziggy6 joined perl6
02:41 gaal joined perl6
02:43 GabrielVieira joined perl6
02:51 drbean joined perl6
02:57 mako132_ joined perl6
03:00 qmole joined perl6
03:02 amnesiac joined perl6
03:30 Elastri joined perl6
03:44 Ziggy6 left perl6
03:53 mugwump ?eval my@a=<a b c d>; say @a.reverse.pop.shift
03:53 evalbot_r15368 is now known as evalbot_r15369
03:53 evalbot_r15369 Error: Unsafe function 'Pugs::Internals::openFile' called under safe mode
03:53 Ziggy6 joined perl6
03:54 mugwump ?eval my @a = <a b c d>; @a.reverse.pop.shift
03:54 evalbot_r15369 Error: Unsafe function 'Pugs::Internals::openFile' called under safe mode
03:55 Ziggy6 left perl6
03:57 allbery_b huuuh
03:57 allbery_b is that a parser breakdown?
03:58 allbery_b ?eval my @a = ≪a b c d≫; say @a.reverse.pop.shift
03:58 evalbot_r15369 Error: ␤Unexpected "\8810"
03:59 allbery_b ?eval my @a = <<a b c d>>; say @a.reverse.pop.shift
03:59 evalbot_r15369 Error: Unsafe function 'Pugs::Internals::openFile' called under safe mode
04:12 justatheory joined perl6
04:12 macli_ joined perl6
04:15 Aankhen`` is now known as Aankhen`
04:15 Aankhen` is now known as Aankhen``
04:16 Aankhen`` is now known as Aankhen`
04:20 Aankhen`` joined perl6
04:23 putter joined perl6
04:24 putter re [(.)$0]+   $0 is going to be an array.  what is $0 here?  ~$0[-1] ?
04:30 Ziggy6 joined perl6
04:31 putter Request reality check.  The following is a current parrot regex test.
04:31 putter <alpha> [ - <alpha> ]?abc def ghi/mob<alpha> 0: <a @ 3>/multiple subrule captures in same scope
04:31 putter http://svn.perl.org/viewcvs/parrot/trunk/t/compilers/pge/p6regex/rx_captures?view=markup&amp;rev=17094
04:31 lambdabot Title: [parrot] View of /trunk/t/compilers/pge/p6regex/rx_captures, http://tinyurl.com/2d4hfl
04:32 putter I don't see how a could be at position 3.  There is no a at position 3.  Test bug?
04:36 qmole joined perl6
04:59 * Aankhen`` pokes stevan_.
05:02 putter stevan_ doesn't notice.
05:03 |mjk| joined perl6
05:04 Aankhen`` Burn. :-(
05:07 mako132_ joined perl6
05:13 putter It's just past midnight here. :)
05:15 Ziggy6 it's past 7 am here :D
05:15 TimToady It's past 21 am here.
05:15 putter lol
05:16 putter a timezone roll call...
05:20 allbery_b @localtime allbery_b
05:20 Patterner "Wed Sep 4928 1693 06:20:36"
05:20 lambdabot Local time for allbery_b is Tue Feb 27 00:20:35
05:24 putter @localtime putter
05:24 svnbot6 r15370 | putter++ | misc/pX/Common/yet_another_regex_engine - minor progress.  rx_*.t now 84%.  re_tests.t starting to max out at 96%, with performance continuing its slow erosion, now 15 sec.  Still no aliases.
05:24 tene putter: /ctcp #perl6 TIME
05:25 putter ah, tnx
05:28 putter g'night &
05:33 drupek12212157 joined perl6
05:34 avarab joined perl6
05:36 putter joined perl6
05:40 putter A quick note, just because there have been misunderstandings in the past.  yet_another_regex_engine is NOT fit to be advertised or "seen".  High test numbers are misleading, because our test coverage sucks.  The code is a "anything that works, defer any non-critical path cleanup until the tests are passing" ugly crufty kludge.  Maybe after pugs t/regex is running and passing, and at least a first pass at code cleanup has occurred.  May
05:41 putter &
05:49 Ziggy6 left perl6
06:14 BooK joined perl6
06:14 nipotan is now known as nipotaway
06:19 ruz joined perl6
06:45 rfordinal_ is now known as rfordinal
06:46 lisppaste3 joined perl6
06:53 devogon_ joined perl6
07:02 GabrielVieira2 joined perl6
07:11 iblechbot joined perl6
07:21 rhizo joined perl6
07:48 the_dormant joined perl6
07:49 marmic joined perl6
08:17 drupek12212157 joined perl6
08:19 GabrielVieira joined perl6
08:29 Ziggy6 joined perl6
08:31 dduncan left perl6
08:34 gaal dduncan: did you mean "sub" where you have "function"?
08:39 renormalist joined perl6
08:49 rindolf joined perl6
08:50 dakkar joined perl6
08:55 lichtkind joined perl6
08:57 jisom joined perl6
08:57 andara joined perl6
09:01 Aankhen`` joined perl6
09:05 renormalist Hi! I read about rumours that a new Pugs release 6.28 might be possible in march. Can this indeed happen? Because, if it can, I would try to coordinate the release with some news in german news tickers. I have half a foot in the door and stay in contact with some editors. They are still sceptic about Perl6 but it was already possible to explain them things about the project. So, is a new release planned for which I should be awake to not miss the
09:05 renormalist release date?
09:23 [M]erk joined perl6
09:27 lichtkind renormalist are you german?
09:30 drupek12212157 joined perl6
09:32 jisom joined perl6
09:32 renormalist joined perl6
09:32 bsb joined perl6
09:32 allbery_b joined perl6
09:32 integral joined perl6
09:32 [particle] joined perl6
09:32 forsaken joined perl6
10:19 elmex joined perl6
10:26 avarab is now known as avar
10:31 ruoso joined perl6
11:14 fglock joined perl6
11:24 gene9 joined perl6
11:39 penk joined perl6
11:43 moritz ?eval ~localtime(time)
11:44 evalbot_r15369 is now known as evalbot_r15370
11:44 evalbot_r15370 "<obj:Time::Local>"
11:44 moritz should that stringify more cleverly?
11:48 buetow joined perl6
11:54 pbuetow joined perl6
11:54 pbuetow joined perl6
12:04 Bit-Man joined perl6
12:10 chris2 joined perl6
12:12 fglock http://use.perl.org/~fglock/journal/32518
12:12 lambdabot Title: Journal of fglock (5723)
12:13 fglock this is a list of the p6 things that I've been working on lately
12:21 fglock would it still make sense to bootstrap mp6 in Haskell? this would make some goodies available to low-level pugs, such as the small rule compiler
12:34 yhsuan_ joined perl6
12:37 nipra joined perl6
12:54 rodi joined perl6
12:56 ruoso joined perl6
13:03 Limbic_Region joined perl6
13:03 rfordinal_athome joined perl6
13:05 avar "- Finish Pugs::Compiler::Rule p5-regex backend, using the new features implemented by dmq++"
13:06 avar fglock: you mean re::engine::Pugs::Compliler::Rule?
13:12 fglock avar: http://svn.pugscode.org/pugs/perl5/Pugs-Compiler-Rule/lib/Pugs/Emitter/Rule/Perl5/Regex.pm
13:12 lambdabot http://tinyurl.com/2gvave
13:14 fglock How can I add a notification block to a variable? like:  $x.STORE will POST { ... }
13:15 fglock or LEAVE, maybe
13:17 fglock the reason for this is to implement side effects on adding a hash key - such as, longest-token indexing
13:24 audreyt yay my HD is back :))))
13:25 rindolf audreyt: excellent.
13:25 audreyt lesson learned: do not ever abort a dd from firewire to internal HD, for OSX can't boot from firewire with an incomplete internal HD coy
13:25 audreyt (wasted 1day on that)
13:26 the_dormant joined perl6
13:31 |newbie| joined perl6
13:31 Limbic_Region audreyt - no, lesson learned:  have patience for things that are completely out of your control
13:31 Limbic_Region else, you may end up with a situation that is in your control but that consumes more of your time then just waiting would have
13:31 Limbic_Region ;-)
13:42 audreyt aye :)
13:45 IllvilJa joined perl6
13:54 lichtkind hallo audreyt glad to see you
13:57 Juerd audreyt: Are you out of hospital already?
13:58 Juerd s/already/yet/
13:59 audreyt Juerd: aye
13:59 Juerd audreyt: That's great :)
14:02 fglock is this correct p6? &($x.STORE) will LEAVE { say "stored" }
14:02 dakkar what's the &() for?
14:02 fglock so that it doesn't call STORE
14:03 dakkar oh, right (I'll have to reread all the synopsis...)
14:03 fglock but consider it a closure-object instead
14:04 audreyt hm?
14:04 audreyt that doesn't sound correct...
14:04 audreyt are you trying to add a post-STORE hook?
14:04 fglock yes
14:06 fglock this is something that kp6 supports, I wonder how specced is it
14:06 audreyt currently iirc the only specced way is
14:07 audreyt my $x;
14:07 audreyt my $proxy := Proxy.new(FETCH => method { $x }, STORE => method ($v) { say "stored"; $x = $v })
14:07 audreyt and then use proxy
14:08 audreyt the "will" etc modifies the entire method
14:08 audreyt i.e. it'll affect all Scalar.STORE
14:08 audreyt which is definitely not what you want
14:08 audreyt also &($x.STORE) does call STORE
14:09 audreyt you need $x.can('STORE')
14:09 audreyt but that still gets your Scalar.STORE
14:09 audreyt so it looks like a Proxy implementation class is the way to go
14:09 fglock how about 'does LEAVE {...}' - would it only affect this scalar?
14:09 rodi joined perl6
14:09 fglock ok - so Proxy is like the perl5 tie
14:10 audreyt yes.
14:10 fglock can I add a role to the scalar $x?
14:11 fglock roles are normally added to $x contents instead, right?
14:12 audreyt right.
14:12 audreyt VAR($x) does ...
14:12 audreyt is what you want
14:12 fglock ok!
14:13 audreyt VAR($x) is a node that defeats item-or-list rvaluization
14:13 audreyt (normally an implicit item() or list() is placed around all rvalue nodes.)
14:14 fglock in order to add a this Proxy to a hash, I need to make a hash Proxy that returns scalar Proxies on .lookup ?
14:15 fglock Proxy.new( ..., LOOKUP => method { Proxy.new( FETCH => ... ) } ... }
14:16 fglock so that: $h{x} = 1 # stored
14:18 nipra joined perl6
14:18 mj41 joined perl6
14:18 audreyt well, not neccessarily
14:18 audreyt depends on what you want to do
14:19 audreyt if you want to intercept all stores into the hash, then yeah
14:19 fglock yes, this is the intent
14:20 diakopter joined perl6
14:22 fglock I will not likely need it, but is this ok? (VAR($x).STORE) will LEAVE { say "stored" }
14:22 fglock I mean,
14:22 fglock (VAR($x).STORE) does LEAVE { say "stored" }
14:24 fglock nm, I can now see how it fails
14:24 fglock you'd need to clone the cloure first
14:25 fglock closure
14:25 diakopter which ghc version is currently recommended in which to build pugs?
14:26 Limbic_Region diakopter - ghc 6.6 is minimum required to build current pugs
14:27 Limbic_Region if you are feeling adventurous, 6.7 (unstable) has shiny new features that pugs *might* be taking advantage of
14:27 diakopter Limbic_Region: I am feeling adventurous.
14:28 Limbic_Region diakopter - what platform?
14:28 diakopter debian etch
14:29 Limbic_Region diakopter - http://www.haskell.org/ghc/dist/current/dist/   # HEAD of GHC development branch
14:29 lambdabot Title: Index of /ghc/dist/current/dist
14:29 Limbic_Region daily builds available - you will need an existing GHC implementation to build
14:30 fglock audreyt: how about: VAR($x) does run_on_store:{ say "stored" }   # but I wonder what the role looks like internally
14:31 polettix joined perl6
14:39 forsaken joined perl6
14:42 audreyt fglock: just go ahead :)
14:43 fglock audreyt: sorry for nitpicking :)
14:43 chris2 joined perl6
14:44 audreyt heh, np at all :)
14:49 rindolf joined perl6
14:55 ruoso fglock, hey... you're back.. :) how was the beach?
14:55 iblechbot joined perl6
14:58 fglock ruoso: it was nice, thanks! only a few rainy days, and not too hot
14:58 rindolf fglock: beach where?
14:58 fglock rindolf: southern Brazil
14:59 rindolf fglock: ah.
15:00 ruoso fglock, one interesting thing I was playing with in another day... http://www.perl.org.br/bin/view/Artigos/ParsePortuguesComPCR
15:00 lambdabot Title: ParsePortuguesComPCR < Artigos < TWiki
15:00 fglock looking
15:03 fglock wow :) it remembers me how hard it was the grammar lessons in school
15:03 ruoso fglock, hehe
15:03 ruoso fglock, my wife was helping me... I don't know that much of portuguese grammar
15:04 ruoso But on the last coding I made, it seems that backtracking is somewhat mandatory on that kind of parsing, because of the ambiguities... (does that word exists?)
15:05 fglock yes, I think so
15:05 [particle] yes
15:06 fglock you could use v6.pm and write a plain p6 'grammar' - it translates to p5
15:07 ruoso I know... But I wasn't able to find out how to use the grammar in v6 from p5...
15:07 ruoso to do the dumping...
15:08 fglock it should work the same (afai can remember)
15:08 ruoso do you mean, if the Portugues.pm is re-written using v6, would it just work?
15:09 fglock yes
15:09 fglock it looks like you are using \s* in some places that should be \s+
15:12 fglock joined perl6
15:12 fglock ruoso: actually, see the notes in the beginning of this file: http://svn.pugscode.org/pugs/perl5/Pugs-Compiler-Rule/lib/Pugs/Grammar/Rule2.pm
15:12 lambdabot http://tinyurl.com/2fgmop
15:12 pbuetow joined perl6
15:12 fglock there are some complications because of v6.pm's use of Data::Bind
15:13 fglock so you cannot use v6.pm grammars easily from p5
15:14 kolibrie fglock: mine work okay
15:15 * kolibrie means to document his setup sometime...
15:15 fglock kolibrie: good to know - it's a problem internal to v6 pm's own parser, then
15:18 fglock I remember now - the problem was that there was no reason for PCR to depend on Data::Bind, but this required some edits for bootstrapping
15:18 fglock it's an internal problem only :)
15:18 kolibrie :)
15:24 fglock ruoso: the rules that are simple list-of-words could be created with Pugs::Compiler::Token - it's somewhat faster
15:26 fglock lunch &
15:29 Limbic_Region fglock - when you get back from lunch - do you know a brazil based hacker using an online handle of macae or something similar?
15:30 * Limbic_Region received an unsolicited /msg from that individual but was unable to carry on much of a conversation due to language barrier
15:31 ruoso joined perl6
15:34 Limbic_Region @tell fglock do you know a brazil based hacker using an online handle of macae or something similar?  I ask because I received an unsolicited private /msg but was unable to carry on much of a conversation due to the language barrier.
15:34 lambdabot Consider it noted.
15:35 bonesss joined perl6
15:39 ruoso Limbic_Region, is he online now?
15:40 ruoso I mean... is macae his nickname?
15:42 theorbtwo joined perl6
15:43 Limbic_Region ruoso - I believe macae is his nickname but not 100% sure of spelling nor any idea if online now
15:43 Limbic_Region I am fairly certain he is Catholic and has a 5 year old son
15:43 ruoso Limbic_Region, ok... anyway... he is known in the brazillian community by it's bad behaviour..
15:43 ruoso s/it's/his/
15:44 Limbic_Region the conversation was rather sureal - and the unsolicited /msg would be in line with what you are saying
15:45 ruoso I would suggest to just ignoring his priv msgs... he wouldn't probably realize that this is not a good behaviour..
15:45 Limbic_Region well, I told him basically that his poor english and my non-existant portuguese was preventing us from communicating
15:46 Limbic_Region I normally ignore all private /msgs from folks I don't know and I didn't request but at first I thought I might be talking to someone's attempt at an AI bot
15:47 ruoso Limbic_Region, heaeahehaeahwewerawerwerhrh
15:47 ruoso the description fits...
15:50 rashakil_ joined perl6
16:04 svnbot6 r15371 | audreyt++ | * cmp() (and by extension, sort()) should default on lexographic
16:04 svnbot6 r15371 | audreyt++ |   sorting if either side is non-numeric.
16:04 fglock joined perl6
16:05 fglock joined perl6
16:06 thepler joined perl6
16:07 fglock Limbic_Region: yes, I guess he is in the Brazil-pm mailing list
16:07 lambdabot fglock: You have 1 new message. '/msg lambdabot @messages' to read it.
16:09 ruoso joined perl6
16:18 wilx` joined perl6
16:34 TimToady fglock: you should probably know that the official P6 grammar no longer uses magical hashes for longest-token
16:34 TimToady see src/perl6/Perl-6.0.0-STD.pm
16:35 fglock TimToady: oh, right - but I was still thinking about the original implementation problem :)
16:36 TimToady longest token is now defined entirely in terms of DFA-able prefixes on all reachable rules
16:37 fglock still, you need to be notified if a rule changes - hmm, perhaps not, since the compiler would see lexical rule redefinitions?
16:38 TimToady if you consider the grammar to be relatively immutable once you've used it, you only need to keep track of your current grammar changing
16:38 TimToady this is part of why I abandoned the hash/array idea
16:39 fglock so it's ok to cache the DFA
16:39 fglock nice
16:39 TimToady yes, I think
16:40 TimToady you just have to recalculate the overall DFA from the individual ones if you add a macro or some such
16:40 TimToady we can probably arrange them into two groups, one of which we know the length of, and one of which we don't.
16:41 TimToady identifiers we don't know how long they'll end up, for instance, but they'll very often be the longest token
16:41 TimToady so that wants to be efficient
16:42 TimToady so maybe we could also split the dfas into groups by initial first character
16:42 TimToady (I'm presuming they already have different entry points for different grammatical contexts of alternations.)
16:43 TimToady anyway, there are various potential ways to optimize it.
16:44 TimToady but in the abstract, you just run all the DFAs seen at a particular set of alternatives
16:44 TimToady then sort the results into decreasing order by length recognized
16:44 TimToady then start calling the rules the DFA ended up pointing to
16:45 TimToady when a rule fails you look for the next longest candidate
16:45 TimToady so it really is the multi-dispatcher in disguise
16:46 TimToady except that the sort needs to be done on every different input, which is why you probably want to separate out the sublist of candidates whose prefixes we already know.
16:47 TimToady and maybe cheat on identifiers
16:47 TimToady when we see one coming
16:48 TimToady then hopefully the actual DFA semantics of the remaining candidates actually work using the DFA engine to fine the longest candidate.
16:48 TimToady which will usually be the right one unless if fails.
16:49 TimToady for a bootstrap, the stupid way is probably sufficient
16:50 mako132 joined perl6
16:52 TimToady and we can cheat on the bootstrap knowing the grammar doesn't have to be extensible yet
16:53 TimToady but now I'm just telling you things you already know
16:54 fglock it's always good to have a review - I've been in vacation for a while :)
16:55 TimToady well, and my thinking on -STD has changed quite a bit over the last month
16:55 TimToady do you follow the parrot mailing list?
16:56 TimToady I posted a message there on Sunday explaining how the grammar syntax has changed recently.
16:57 fglock looking
16:57 mako132 joined perl6
16:58 TimToady http://www.nntp.perl.org/group/perl.perl6.internals/2007/02/msg36564.html
16:58 lambdabot Title: [perl #41623] [TODO] modify p6regex op naming convention to match perl 6 - nntp. ..., http://tinyurl.com/24znst
16:59 fglock thanks
17:00 [particle] TimToady: do you have pending changes to S05 (or others) based on your STD grammar work?
17:02 [particle] i expect your syntax to be idiomatic, but i doubt -STD is the right place to document it. maybe that place is S05? or perhaps better in E05?
17:03 TimToady I think I've mostly made all the generic synopsis changes as I was going along.
17:04 fglock TimToady: you mean ( --> Additive ) mostly replaces the need for a return block
17:04 TimToady yes
17:05 TimToady we've still got the {*} stubs in there if a particular instantiation of the grammar wants to do something extra at reduction/return time.
17:05 fglock where is the Match-to-Additive coercion implemented?
17:06 TimToady but most of the returns can be handled by the coercion, I expect, assuming the coercion is smart enough to harvest the result for things like $<sym>
17:06 [particle] do you expect that code to be injected by the implementation?
17:06 TimToady class Additive        does PrecOp[|%additive]               {}
17:06 TimToady so look at PrecOp
17:06 [particle] i guess pre-processing the grammar is the same as injection
17:07 fglock ok
17:08 TimToady at this point most of what it does is makes sure the right precedence bubbles up to where the opp can see it.
17:08 TimToady some metaops like x= define their own precedence
17:08 gnuvince left perl6
17:08 TimToady others are "transparent" and take prec from the inner op, like »x«
17:09 TimToady mind, none of this stuff is tested, so you'll likely find bugs just by inspection.
17:10 TimToady I can just barely get pugs to call into EXPR using my "cheat" preprocessor script
17:10 fglock [ot] does $x = $y imply $x = $y.clone in p6?
17:11 TimToady yes
17:11 TimToady well, maybe not always
17:12 Limbic_Region joined perl6
17:12 TimToady maybe only value types
17:12 TimToady anyway, I currently get:
17:12 TimToady cheat Perl-6.0.0-STD.pm >foo; pugs foo
17:12 TimToady *** Cannot parse regex:  <?before <$stop>>
17:12 TimToady *** Error:
17:12 TimToady *** No compatible subroutine found: "&expect_term" at foo line 2288, column 22-37
17:13 TimToady the last error is because rules and methods haven't been sufficiently unified, I suspect.
17:13 TimToady but maybe you can figure out why the regex doesn't parse.
17:14 TimToady (it's near the front of method EXPR)
17:14 fglock I wonder how pugs interacts with PCR re p6 code blocks
17:14 fglock probably generates a callback to haskell
17:15 fglock taking a look (using v6.pm)
17:15 TimToady there needs to be an object in there somewhere that is keeping track of the current parse
17:15 TimToady the "self" of all the grammar methods/rules
17:16 fglock where is 'cheat' ?
17:16 TimToady same directory
17:16 fglock k
17:17 TimToady I think putter was also working on some kind of framework for mixing and match such "cheats", but I've been ignoring it for now.
17:17 TimToady *matching
17:18 justatheory joined perl6
17:18 TimToady the next cheat I was going to implement was actually to move the type coercion down to be a return()
17:19 justatheory joined perl6
17:19 TimToady but I need to abandon use of $. for that so that I can do Text::Balanced on the token bodies.
17:19 gaal Juerd: audreyt: FYI, I've installed slightly ghettoized .debs of haskell libs (libghc6-{zlib, plugins, binary}-dev) -- if official packages of these ever make it to debian, they should be prefered
17:21 gaal I needed to ghc-pkg update these with the ghc in /usr/local/bin; I don't forsee any problems but if you run into anything weird it may be that
17:21 gaal man lambdabot takes forever to build :/
17:24 TimToady fglock: but anyway, I'm not expecting you to just drop what you're doing and translate my code.  It's just meant to be a target to aim for, and it's all just pretty syntax till we can actually support the semantics.  So I'd probably continue working on the semantics if I were you.
17:25 TimToady on the other hand, sometimes these things go faster by working them from both ends at once.
17:25 fglock I'm ok - I'm not doing anything in particular - or everything in particular
17:26 fglock I'm still deciding what to focus on for the next days
17:26 * [particle] lights another wick on the hyper-dimensional perl 6 candle
17:26 TimToady it just seemed to me that the various grammars were tending to diverge, so I thought I'd give them all a target to converge toward.
17:28 fglock substituting the internal regex grammar in PCR with a STD subset might be good
17:29 TimToady though I wouldn't be surprised if yours wasn't more correct in many aspects.
17:29 TimToady like I say, the one in STD is completely out of my head.
17:30 TimToady and my head has been known to have the occasional gremlin
17:30 TimToady and some poeple will say I was completely out of my head when I wrote it...  :)
17:31 TimToady sorry, shouldn't throw subtle English idioms at non-native speakers...
17:32 * [particle] thinks you do that with Perl 6 idioms, too
17:32 * TimToady pleads no contest
17:32 fglock I guess PCR implemented <%hash>, but not <$scalar> - this would be a straghtforward fix
17:33 TimToady cool
17:33 fglock are you using a PCR pugs?
17:33 TimToady it's the default
17:33 TimToady so yes
17:33 lisppaste3 joined perl6
17:33 fglock TimToady: re idioms, np :)
17:33 TimToady one of my favorite books is on Japanese idioms
17:33 fglock fixing (or trying to)
17:33 TimToady "attach your ki!"
17:39 fridim joined perl6
17:39 fridim Hi.
17:40 TimToady hello
17:47 diakopter joined perl6
17:47 dmq timtoady you dont happen to recall what "RENUMBRANCHJ,off 1 1Group with independently numbered parens." was intended for in the p5 regex engine?
17:47 andara left perl6
17:47 dmq is that for p6 support?
17:47 mako132 joined perl6
17:47 ruoso joined perl6
17:47 theorbtwo joined perl6
17:47 dec joined perl6
17:47 rfordinal joined perl6
17:47 audreyt joined perl6
17:47 weinig|bbl joined perl6
17:47 SamB joined perl6
17:47 cookys joined perl6
17:47 Eidolos joined perl6
17:47 Gothmog_ joined perl6
17:47 baest joined perl6
17:47 Flimzy joined perl6
17:47 silug joined perl6
17:47 rhr joined perl6
17:47 takesako__ joined perl6
17:47 kolibrie joined perl6
17:47 spo0nman joined perl6
17:47 stef_ joined perl6
17:47 mugwump joined perl6
17:47 Odin- joined perl6
17:47 jamessan joined perl6
17:47 nnunley joined perl6
17:47 dmq if so is it something i should look into for the 6 on 5 stuff?
17:47 Flimzy left perl6
17:50 nusgnaf joined perl6
18:09 ilogger2 joined perl6
18:09 audreyt $.whimper; $!bang
18:09 TimToady I vote for * in it's "whatever" meaning
18:10 audreyt $ space_as_twigil_yay
18:10 TimToady the final frontier
18:10 jisom joined perl6
18:11 TimToady anybody here have opinions about small numbers?
18:11 dmq they usually get picked on by the bigger ones
18:12 dmq :-)
18:12 TimToady my basic feeling is that the compiler should feel free to use larger numbers for intermediate results, and that things like int4 are primarily just storage classes.
18:13 TimToady at least, that's the default, though if you GPU wants to calculate in num16, I suppose it should be let somehow
18:13 allbery_b $∙whimper
18:13 audreyt TimToady: that sounds sane.
18:15 putter joined perl6
18:15 TimToady I really am not quite sure what he means by byte-stringification though...
18:17 fridim As the way PyPy is fast enough (3x slower than the CPython), Couldn't we imagine a perl interpreter of perl, "bootstraped" thanks to Pugs ? (Actually I don't know much about perl6)
18:18 allbery_b that's actually the final plan
18:18 xerox joined perl6
18:18 fridim allbery_b, ok :)
18:18 Ziggy6 fridim: we already have a bootstrapped perl6 compiler
18:18 * audreyt goes to sleep :) &
18:18 TimToady night!
18:19 TimToady but we'll basically use whatever bootstraps are available.
18:20 fridim The perl compiler for parrot will be written in perl, is that right?
18:20 TimToady fridim: we already have the Perl 6 parser mostly writtin in Perl 6.
18:20 TimToady *written
18:20 Ziggy6 fridim: yes
18:21 TimToady see http://svn.pugscode.org/pugs/src/perl6/Perl-6.0.0-STD.pm
18:21 fglock I think byte-stringification == .perl
18:21 fridim So there will be a perl6 compiler of perl6 for parrot, and a perl6 interpreter for perl6 ?
18:21 fridim TimToady, ok.
18:22 TimToady certainly a compiler.  don't care as much about the interpreter
18:23 TimToady fglock: I was interpreting it more as guaranteed memory layout
18:23 fglock ?eval my byte @a = 1,2,3; @a.perl
18:23 evalbot_r15372 "[1, 2, 3]"
18:23 Limbic_Region Parrot's VM allows bytecode to be modified while running?
18:24 Ziggy6 TimToady: compare the sizes of http://docs.python.org/ref/grammar.txt with http://svn.pugscode.org/pugs/src/perl6/Perl-6.0.0-STD.pm :D
18:24 TimToady in general I think Parrot would prefer to map bytecode into readonly segments that can be shared.
18:24 * Limbic_Region was just wondering how to do a REPL with Perl 6
18:25 justatheory joined perl6
18:25 TimToady Ziggy6: sure, see how much more Perl does for you.   :)
18:25 fglock I was thinking about something related to this same problem - how do you represent the '.perl' of a closure with it's lexical pads
18:25 fglock kp6-perl5 has a 'Pad' class that it uses internally for BEGIN blocks for example
18:26 jisom in parrot, you can "eval" code and add it into the available bytecode sections
18:26 fglock and 'Closure( code => {...}, pad => Pad(...) )' works
18:28 fglock Pad ends up actually calling "eval" later
18:28 fglock but that's hidden from the user
18:29 diakopter OT: my college roommate recently attended a Stroustrup presentation where his C++ compiler was generating prime numbers during compilation
18:31 bernhard joined perl6
18:31 jamessan yeah, that's a dirty way to use templates. I've seen people do the same for calculating fibonacci numbers
18:31 jamessan you offload the work to the compiler so it's constant time during runtime
18:31 TimToady one can view the compilation process as dynamic scope around the actual "exectutable".  However, you have to freeze that dynamic scope (and all its lexical scopes) when you do separate compilation.
18:32 putter TimToady: if you're no longer using ':' in foo:x, can I have it for "x is a name"?  that's how I was thinking of it anyway.  and "you can delete an individual multi production by using the longname" (aka "longname collision typespace whack-a-mole"), is a story which hasn't appealed to me.
18:32 putter :)
18:32 fglock TimToady: that's why I created 'Pad'
18:34 fglock also, I can say $closure.pad and do something weird with the pad
18:34 TimToady so you'd have, say circumfix:parens that knew it's part of rule circurmfix but can be named with the extended name?
18:34 putter exactly
18:35 TimToady lemme think about it
18:35 putter np
18:36 putter sorry to land in closure conversation.  just had a sec.
18:36 TimToady but maybe default to a long name using $<sym>
18:36 TimToady no, wait, that gets the collision again
18:36 fglock do I have to use Closure($closure).pad so that the closure isn't called
18:36 fglock putter: np
18:37 fglock putter: I'm mostly talking to myself :)
18:37 TimToady I'm afraid most of us do that most of the time.  :)
18:39 TimToady maybe that's VAR($closure).pad or some such.  Closure($closure) might be a no-op
18:40 TimToady hmm, but why not just $closure.pad?
18:40 fglock I thought about VAR(), but that operates on the container
18:40 TimToady you're only in trouble if you say $closure.()
18:40 fglock ah, ok
18:41 TimToady in fact, I think it was nothingmuch? that was requesting autogenerated methods for closures
18:41 TimToady sub foo { have $.mymethod; ... }
18:42 fglock $closure.HOW.add_role( ... ) ?
18:43 TimToady something like that
18:43 fglock this should work in kp6 :)
18:44 TimToady Old saying from the construction industry: "If it doesn't fit, force it.  If it breaks, it was badly designed."
18:46 jisom if the square rod doesn't fit in the round hole, get a lathe
18:47 TimToady I think the idea is you use the round hole as the lathe.  :)
18:47 TimToady and then ignore all the shavings
18:48 TimToady and there are a *lot* of ignored shavings laying around in heaps around Perl 5...  :)
18:50 Aankhen`` joined perl6
18:50 fglock something like that - but kp6-perl5 manages to be pure-perl5 (no XS or B)
18:50 TimToady class "0"?
18:51 fglock sorry?
18:51 TimToady a way to get a false class in Perl 5, which schwern was lamenting the other day
18:53 TimToady biab &
19:05 fglock one of the ideas for kp6-C was that the user program could be represented as an object like: Closure( code => Statements( [ Apply( ...
19:05 fglock but then it would be some kind of interpreter
19:13 drupek12212157 joined perl6
19:17 stevan_ joined perl6
19:22 ajs_ Has anyone here read Gradual Typing for Objects by Jeremy Siek and Walid Taha? It references Perl 6 devlopers but doesn't clarify its implications with respect to Perl 6.
19:23 ajs_ http://www.cs.colorado.edu/~siek/gradual-obj.pdf
19:23 ajs_ It's a followup to http://www.cs.colorado.edu/~siek/pubs/pubs/2006/siek06:_gradual.pdf
19:23 lambdabot http://tinyurl.com/y428q7
19:25 ajs_ I suppose the primary thing that it describes that Perl 6 doesn't do is comparing objects based purely on their method signatures (e.g. two classes are compatible if they both implement the same method names with compatible types in their signatures... which, yes, becomes recursive)
19:25 ajs_ I'm giving a talk about it on Thursday, and wanted to give the Perl 6 angle
19:29 TimToady sounds kind of fragile to me
19:29 Ziggy6 joined perl6
19:29 TimToady sort of smart duck typing till you make a mistake
19:30 TimToady but I haven't read the papers...
19:33 ajs_ Ok, thanks
19:37 audreyt ajs_: perl6's subtyping is nominal.
19:37 audreyt so no, we don't do structural subtyping
19:37 audreyt though we can do it in term of constraints ("where")
19:39 audreyt our system is closer to BabyJ
19:40 audreyt cf. http://binarylord.com/work/babyj.pdf
19:41 audreyt we start from unnotated dynamic types (denoted as * in that paper)
19:41 audreyt and like BabyJ^T we allow incremental annotations
19:44 ajs_ huh. Interesting. I'll read that one over for my talk.
19:44 ajs_ Thanks
19:45 audreyt np :)
19:45 audreyt Siek's work simply shows that for perl6
19:45 audreyt Any isa Any
19:45 audreyt and neither
19:45 audreyt Any isa Int
19:45 audreyt nor
19:45 audreyt Int isa Any
19:45 audreyt should be true
19:46 audreyt i.e. the Any annotation is orthogonal to subtyping
19:46 audreyt also we can use his more efficient cast-insertion algorithm
19:46 audreyt but no, we're not going for structural subtyping.
19:47 Jedai joined perl6
19:49 audreyt Siek's contribution is that if we allow Int-isa-Any (like in e.g. Java), a fully annotated program can still contain type errors -- i.e. it's not sound
19:50 audreyt for details see their first paper (Gradual typing for funtional languages)
19:50 * audreyt goes back to sleep :) &
19:51 iblechbot joined perl6
19:51 mj41 joined perl6
19:51 penk joined perl6
19:51 bsb joined perl6
19:51 allbery_b joined perl6
19:51 integral joined perl6
19:51 [particle] joined perl6
19:53 Caelum joined perl6
19:56 renormalist joined perl6
20:01 nothingmuch joined perl6
20:14 mj41 joined perl6
20:15 chris2 joined perl6
20:19 offby1 joined perl6
20:46 wilx joined perl6
20:58 dduncan joined perl6
20:59 dduncan joined perl6
21:03 icarroll joined perl6
21:03 the_dormant joined perl6
21:04 rindolf joined perl6
21:04 rindolf Hi all.
21:05 icarroll left perl6
21:07 GeJ joined perl6
21:08 offby1 eek!
21:08 * offby1 flees in terror
21:09 devogon joined perl6
21:12 rindolf offby1: eeeeeeeeeeek!
21:16 stevan_ joined perl6
21:23 Daveman joined perl6
21:26 offby1 mighty quiet 'round here.
21:27 rindolf offby1: yeah.
21:29 allbery_b there was chatter earlier but it looks liek the netsplit ate it :)
21:30 tene Heh.
21:38 offby1 to fill the emptiness, I will opine: I sure hope perl6 will be easy to edit with emacs
21:39 Ziggy6 offby1: only if you do something like pymacs
21:39 fridim pugs> 'x'.HOW.methods
21:39 fridim *** No compatible subroutine found: "&methods"
21:39 fridim    at <interactive> line 1, column 1-16
21:40 fridim Despite it is in the RFC :/
21:40 TimToady 6.28
21:41 TimToady offby1: just translate Perl-6.0.0-STD.pm to e-lisp and you're on your way...
21:41 allbery_b fridim:  the whole MO thing is only just starting to go into the tree
21:43 * offby1 wonders if TimToady is joking
21:44 audreyt fridim: .HOW support will come really, really soon :)
21:45 audreyt if I continue to fail to sleep, then definitely in a week
21:45 PerlJam offby1: why not?  We've already got parrot, haskell, and perl5 parsers ... why not an e-lisp one too?
21:45 audreyt but that doesn't seem quite right :)
21:45 offby1 PerlJam: I dunno.  I don't even know what Perl-6.0.0-STD.pm *is*
21:46 allbery_b it's the perl6 language spec, written in perl6
21:46 audreyt *grammar spec
21:46 allbery_b yeh
21:46 offby1 part of pugs?
21:46 audreyt it's in the pugs tree but not yet hooked to any implementation
21:46 Ziggy6 offby1: yes
21:46 offby1 Ziggy6: thanks.
21:46 audreyt we're cheating on it, though.
21:46 audreyt I mean, working on it.
21:46 * offby1 wonders why "locate Perl-6.0.0-STD.pm" didn't find it
21:47 audreyt offby1: http://dev.pugscode.org/browser/src/perl6/Perl-6.0.0-STD.pm
21:47 offby1 thanks
21:47 lambdabot Title: /src/perl6/Perl-6.0.0-STD.pm - Pugs - Trac
21:47 offby1 odd, it's not in my pugs working copy ...
21:48 offby1 probably because my working copy is ancient.
21:49 TimToady it's generally less heartache to just keep up-to-date; things don't usually break badly most of the time
21:49 audreyt ?eval 1+1
21:49 evalbot_r15373 2
21:50 offby1 TimToady: just what I wanted to hear! :-)
21:50 * offby1 heedlessly rushes to 'svn up'
21:50 audreyt ?eval vv('ello').reverse
21:50 evalbot_r15373 pugs: Data.Map.lookup: Key not found
21:50 TimToady you'll notice I put at least three hedges in that statement.  :)
21:50 TimToady maybe four
21:50 * tene sees four
21:51 offby1 "generally", "usually", "most of the time"
21:51 TimToady badly
21:51 PerlJam offby1: do you have a feather account?
21:51 offby1 PerlJam: probably not, since I don't know what "a feather account" is :-)
21:52 TimToady hmm, "less" is a hedge too
21:52 PerlJam feather.perl6.nl is a server that Juerd maintains for perl6/parrot development.
21:53 PerlJam offby1: I don't know what the proper procedure is for getting an account on feather, but /msg Juerd about it and I'm sure you'll get some sort of response.
21:53 PerlJam :-)
21:53 TimToady it certainly would not be true to say "it's no heartache to just keep up-to-date; things don't break"
21:53 offby1 PerlJam: what's the benefit to me, and the benefit to everyone else?
21:54 PerlJam offby1: There's an up-to-date copy of pugs/parrot available to you.  You can use svk. It's free. et cetera.
21:54 offby1 hmm.
21:55 offby1 I'll poke about on the server, and see.
21:55 PerlJam offby1: feather is the official pugs repository last I heard
21:56 offby1 I don't think I'd benefit much from that.  If a particular build of pugs doesn't work for me, I'll back up to one that does.
21:58 ludan joined perl6
21:59 PerlJam offby1: whatever works for you.  I'm just telling you about available resources  :)
22:00 forsaken joined perl6
22:00 offby1 thanks
22:16 stevan__ joined perl6
22:22 Psyche^ joined perl6
22:30 Psyche^ is now known as Patterner
22:30 Limbic_Region joined perl6
22:32 justatheory joined perl6
22:56 rashakil joined perl6
22:57 buetow__ joined perl6
23:21 justatheory joined perl6
23:26 svnbot6 r15374 | audreyt++ | * Adapt existing newVal implementation in Pugs.Val to MO.
23:26 svnbot6 r15374 | audreyt++ |   A "Val" is now simply an invocant within the Eval monad.
23:26 Macae joined perl6
23:27 rashakil joined perl6
23:35 pasteling "evalbot_r15373" at 194.145.200.126 pasted "Pugs build failure" (396 lines, 21.6K) at http://sial.org/pbot/23203
23:39 audreyt gaal: type Val = Invocant Eval -- landed
23:39 svnbot6 r15375 | audreyt++ | * Pugs.Val.Base - Comment away everything for now.
23:39 audreyt gaal: will regain the old as* interfaces tomorrow
23:42 svnbot6 r15376 | audreyt++ | * Pugs.Val.Code is now a standalone module yay
23:42 specbot6 r13706 | larry++ | Some clarifications requested by Geoffrey Broadwell++.
23:43 gnuvince_ joined perl6
23:44 Macae Good night in Perl and Christ, Will be when, the launching Perl6?
23:45 audreyt Christmas.
23:47 Khisanth ;)
23:48 Macae audrey++; Excuses I am Brazilian!
23:52 Macae audreyt: Perl6 will be launched in 2007?
23:52 audreyt Macae: possibly. if you'd help then we get there sooner
23:53 audreyt got an email address for me to send you a commit bit to Pugs?
23:56 Macae audreyt: Ok! You want my email?
23:56 audreyt sure
23:57 specbot6 r13707 | larry++ | Modifiers on bit shifts.
23:57 audreyt Macae: did you /msg me? note that freenode does not allow /msg without identify'ing first to NickServ
23:59 Macae audreyt: Not wise of this!

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

Perl 6 | Reference Documentation | Rakudo