Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2007-01-17

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:03 ProperNoun joined perl6
00:06 meppl guten morgen
00:06 Ziggy6 buna dimineata :)
00:16 nicodaemos joined perl6
00:19 nicodaemos joined perl6
00:20 SamB joined perl6
00:20 GabrielVieira2 joined perl6
00:21 ozo_ joined perl6
00:22 thepler joined perl6
00:22 thepler joined perl6
00:36 weinig is now known as weinig|bbl
00:39 Ziggy6 in what areas does the project need help?
00:44 CardinalNumber joined perl6
00:59 Ziggy6 left perl6
00:59 Ziggy6 joined perl6
01:05 thepler joined perl6
01:10 f0rth joined perl6
01:16 ashleyb joined perl6
01:20 b00t joined perl6
01:28 vel joined perl6
01:43 Schwern joined perl6
02:11 CardinalNumber is now known as ProperNoun
02:13 lyokato joined perl6
02:37 Ziggy6 left perl6
02:41 Ziggy6 joined perl6
02:42 Ziggy6 left perl6
02:42 Ziggy6 joined perl6
02:42 Ziggy6 left perl6
02:42 Ziggy6 joined perl6
02:44 Ziggy6 joined perl6
02:49 CardinalNumber joined perl6
02:53 vel joined perl6
03:00 Ziggy6 joined perl6
03:39 autark__ joined perl6
03:40 ProperNoun joined perl6
03:54 leed joined perl6
03:57 drbean joined perl6
04:27 andrei joined perl6
04:27 Ziggy6 left perl6
04:29 Ziggy6 joined perl6
04:42 mako132_ joined perl6
04:45 avarab joined perl6
04:50 Khisanth joined perl6
04:55 ashleyb joined perl6
05:05 beppu Ziggy6, everywhere.  ;-)
05:13 araujo joined perl6
05:14 ashelyb_ joined perl6
05:23 CardinalNumber joined perl6
05:47 khisanth_ joined perl6
05:48 khisanth_ is now known as Khisanth
05:49 cognominal joined perl6
05:51 _Jack_ joined perl6
06:10 thestarslookdown joined perl6
06:14 BooK_ joined perl6
06:27 cognominal joined perl6
06:37 luqui joined perl6
07:10 marmic joined perl6
07:37 elmex joined perl6
07:37 cognominal joined perl6
07:39 drbean left perl6
07:41 iblechbot joined perl6
07:47 b00t joined perl6
07:51 avar joined perl6
08:08 kisu joined perl6
08:11 xinming joined perl6
08:20 drrho joined perl6
08:24 ProperNoun joined perl6
08:44 masak Ziggy6: you might want to check out putter++'s conjectured roadmap
08:44 masak at http://www.vendian.org/mnchar​ity/TemporaryURL/deleteme.png
08:48 luqui_ joined perl6
08:52 ozo_ joined perl6
08:56 masak btw, putter, what do the postfixed double asterisks mean in your diagram?
09:11 mr_ank joined perl6
09:18 luqui_ is now known as luqui
09:26 lambdabot joined perl6
09:45 ruoso joined perl6
10:04 mr_ank joined perl6
10:12 Ziggy6 wow, i never thought implementing perl6 was so complex :))
10:12 chris2 joined perl6
10:16 CardinalNumber joined perl6
10:18 buu Lawl.
10:27 Ziggy6 left perl6
10:27 Ziggy6 joined perl6
10:29 masak Ziggy6: why not?
10:33 Ziggy6 well, there are so many tehnologies used
10:44 Ziggy6 how's the status of pugs? how much of the synopses is implemented?
10:49 buu Ziggy6: 3
10:50 Ziggy6 which synopses?
10:50 buu Omega and Epislon.
10:50 buu Episilon?
10:50 buu epsislslsislsislsislon.
10:51 Ziggy6 ugh, they seem to have numbers, but i can't find the greek letter
10:52 buu It's probably because I'm just randomly making things up
10:52 Ziggy6 :|
10:54 fglock joined perl6
10:56 fglock is feather down?
10:58 masak Ziggy6: the best way to get a grip on how much is implemented is to check out the test coverage
11:00 masak fglock: seems so here
11:00 Ziggy6 hmm seems feather had a lot of services, pugscode.org doesn't work either
11:01 fglock I really need to learn how to use svk locally
11:02 * masak too
11:03 masak ?eval my $when = <before after>.pick; "The Perl 6 Christmas will be $when next real Christmas"
11:04 masak no reaply... ask again later? :)
11:04 masak s/reaply/reply/
11:04 masak oh yeah, feather down
11:04 masak d'oh
11:07 juerd joined perl6
11:07 juerd Feather is down; I don't know why
11:08 juerd I have to finish a few tasks before I can travel to the data centre
11:12 fglock juerd: thanks
11:21 fglock kp6+MOP is working
11:23 iblechbot joined perl6
11:28 TimToady_ joined perl6
11:29 lumi joined perl6
11:32 ProperNoun joined perl6
11:37 fglock TimToady_: re new | semantics - no heartburn :)
11:37 juerd Someone made an ASCII to UTF8 converter in PHP :(
11:38 juerd The bad thing is, it's really ASCII, so it's practically just an incredibly inefficient join "", split //, which again is a very inefficient string copy...
11:38 juerd And all strings on an entiry site were filtered through this. No wonder it was slow.
11:38 juerd s/entiry/entire/
11:40 buetow joined perl6
11:41 juerd Okay, I'm done and will now go to my office to collect some gear to fix feather
11:48 pbuetow joined perl6
12:14 fglock stevan, nothingmuch: what is the recommended way to alias Class::MOP '->meta' to '->HOW' ?
12:14 dduncan ASCII to UTF8 ... that's funny
12:18 nothingmuch Method
12:19 nothingmuch ::Alias?
12:19 nothingmuch in Moose::Object?
12:20 fglock nothingmuch: can it be changed in a central place, before creating classes (I'm not using Moose, only Class::MOP)
12:20 nothingmuch ah... likely by subclassing Class::MOP::Class
12:20 nothingmuch i would have to read the code for that though
12:21 xinming joined perl6
12:22 fglock nothingmuch: thanks - I found it
12:38 CardinalNumber joined perl6
12:49 elmex joined perl6
12:59 dduncan left perl6
13:06 gilimanjaro joined perl6
13:08 bonesss joined perl6
13:08 gilimanjaro left perl6
13:14 wolverian joined perl6
13:14 Limbic_Region joined perl6
13:17 pmichaud joined perl6
13:17 Juerd_ joined perl6
13:17 PerlJam joined perl6
13:41 Ziggy6 ?eval say "feather still down?"
13:46 kolibrie Ziggy6: I can get onto feather just fine.  What service are you trying to use?
13:48 cmarcelo joined perl6
13:49 masak kolibrie: evalbot? :)
13:49 masak btw, feather works here too now. juerd++ must have been to that data centre
13:50 masak but maybe someone needs to give evalbot a little nudge too, I don't know
13:53 stevan fglock: ->meta is not an enforced convention in Class::MOP
13:53 stevan if you want to add an alias to all the current metaclasses you could do this (pause while I hack some code)
13:53 Ziggy6 left perl6
13:54 Ziggy6 joined perl6
13:54 stevan $_->alias_method("HOW" => sub { (shift)->meta }) foreach Class::MOP::get_all_metaclass_instances;
14:04 gnuvince joined perl6
14:07 kolibrie hmm, I started an evalbot on feather, but freenode says I can't invite it here, since I am not a channel op
14:09 * bonesss is away: almoçar
14:11 [particle] joined perl6
14:14 vel joined perl6
14:21 masak kolibrie: I'm a channel op, but I don't have a freenode account :/
14:22 masak s/freenode/feather/
14:23 masak juerd: chu oni demandu al ni se oni deziras feather-konton?
14:23 kolibrie masak: just /invite evalbot6
14:23 masak hm, apparently I'm not a channel op either...
14:24 kolibrie reading the source, one can supposedly supply a list of channels to join on the command-line, but that didn't seem to work
14:24 masak strange
14:26 evalbot6 joined perl6
14:26 kolibrie ha!
14:26 kolibrie it's /msg evalbot6 ?join #perl6
14:27 masak kolibrie++
14:28 masak ?eval my $greeting = "welcome back, evalbot6"; $greeting ~~ s/.*/thanks/; $greeting
14:28 evalbot6 \"thanks"
14:29 * masak is slightly unnerved by all the backslashes on evalbot6++'s replies
14:29 masak ...but it's back. nice
14:29 wolverian ?eval "\" x 10
14:29 evalbot6 Error: ␤Unexpected end of input␤expecting block, "\\", variable name or "\""
14:29 wolverian er. oops :)
14:29 masak :)
14:30 masak now for the 1e6 dollar question:
14:30 masak ?eval my $when = <before after>.pick; "The Perl 6 Christmas will be $when next real Christmas"
14:30 evalbot6 "The Perl 6 Christmas will be before next real Christmas"
14:30 masak yay!
14:30 masak :)
14:30 masak it was a gamble, but it was so worth it
14:33 kolibrie now we know
14:33 Ziggy6 hmm, on my computer, pugs -e "say 'hello'; " takes more than one second. is this normal?
14:34 kolibrie Ziggy6: it has to load the prelude, which takes a while
14:35 Ziggy6 isn't prelude compiled in the executable?
14:35 kolibrie it is compiled (as a yaml file) and then has to be loaded each time pugs is executed
14:36 justatheory joined perl6
14:37 justatheory joined perl6
14:37 CardinalNumber is now known as ProperNoun
14:42 masak Ziggy6: consider that pugs is still a sort of proof-of-concept, like string theory. it's perl6 for those who want to play with perl6 before perl6 is implemented
14:43 Ziggy6 hehe, i was puzzled because i didn't knew Perl6 has it's own Prelude.pm
14:47 masak Ziggy6: it doesn't, but pugs does
15:04 fglock joined perl6
15:06 fglock stevan: re HOW - thanks
15:07 stevan fglock: no problem
15:07 hexmode joined perl6
15:14 cognominal joined perl6
15:17 mdiep joined perl6
15:19 spx2 joined perl6
15:23 spx2 joined perl6
15:24 spx2 joined perl6
15:37 spx2 joined perl6
15:38 buetow joined perl6
15:38 spx2 joined perl6
15:54 pmichaud left perl6
15:59 spx2 joined perl6
15:59 spx2 joined perl6
16:02 mako132 joined perl6
16:08 spx2 joined perl6
16:14 spx2 joined perl6
16:20 spx2 joined perl6
16:26 spx2 joined perl6
16:27 spx2 joined perl6
16:29 spx2 joined perl6
16:34 spx2 joined perl6
16:35 thepler joined perl6
16:36 spx2 joined perl6
16:38 kanru joined perl6
16:39 spx2 joined perl6
16:40 spx2 joined perl6
16:41 trym__ joined perl6
16:44 spx2 joined perl6
16:47 spx2 joined perl6
16:47 ashleyb joined perl6
16:50 spx2 joined perl6
16:51 vel joined perl6
16:57 spx2 joined perl6
16:58 spx2 joined perl6
17:00 spx2 joined perl6
17:02 spx2 joined perl6
17:06 spx2 joined perl6
17:07 * yves is away: Occupé
17:13 spx2 joined perl6
17:16 stevan joined perl6
17:19 ofer1 joined perl6
17:32 Lorn joined perl6
17:34 Southen_ joined perl6
17:37 penk joined perl6
17:37 Teratogen joined perl6
17:37 Teratogen is [] considered an operator in Perl 6?
17:37 Teratogen "outfix" operators
17:37 Teratogen [ expression ] creates an array and returns a reference to it.
17:38 Teratogen hmm, slurp until a blank line.
17:38 lumi Circumfix?
17:38 Teratogen circumfix, sounds good
17:38 [particle] yes, it's a circumfix operator
17:38 Teratogen cool
17:39 [particle] there's also postcircumfix as in @array[1]
17:39 Teratogen gah, I don't like sigil invariance =(
17:39 [particle] well, $array[1] works too
17:39 Teratogen both will work in Perl 6? do array slices go away?
17:39 [particle] in perl 6, there's little reason to use the @ or % sigils
17:40 [particle] no, array slices are @array[1,2] or $array[1,2]
17:40 Teratogen ah.
17:40 [particle] realize that those are two different vars
17:41 Teratogen interesting.
17:41 [particle] my $array = ( 1,2,3 ); my @array = 1,2,3;
17:42 Teratogen they are both arrays though?
17:43 [particle] http://perlcabal.org/syn/S0​2.html#Names_and_Variables
17:43 lambdabot Title: S02
17:43 Teratogen I'll check it out
17:54 xinming_ joined perl6
18:05 CardinalNumber joined perl6
18:05 fglock joined perl6
18:09 nferraz joined perl6
18:11 nferraz hello!
18:12 nferraz is this the right place to ask questions about 6.0-alpha???
18:12 fglock nferraz: :)
18:12 nferraz hey!!!
18:12 nferraz i think i found the right person... ;)
18:14 fglock how are you doing?
18:14 nferraz fine, thanks
18:14 nferraz i'm trying 6.0-alpha...
18:15 fglock v6.pm ?
18:15 nferraz yes
18:15 nferraz (I'm not sure about the nomenclature yet)
18:16 nferraz use v6-alpha
18:16 nferraz that's right?
18:16 fglock yes - we've got, hmm - about 6 different implementations
18:16 nferraz hm
18:17 nferraz I installed using cpan
18:17 nferraz install v6
18:17 fglock ok
18:18 nferraz i was planning to build an interactive fiction -- do you remember those old games, like Adventure? -- just to test the language...
18:19 nferraz my goal would be to learn, and, then, write a tutorial...
18:19 nferraz but I couldn't do the simplest things, like calling a sub...
18:20 fglock nferraz: you can post code here: http://sial.org/pbot/perl6
18:20 lambdabot Title: sial.org Pastebot - pasteling
18:20 fglock paste
18:20 Southen joined perl6
18:21 CardinalNumber is now known as ProperNoun
18:21 fglock v6 doesn't implement the whole language - pugs would be a better choice if you don't need p6-on-p5
18:21 pasteling "nferraz" at 194.65.5.240 pasted "hello world" (40 lines, 1.5K) at http://sial.org/pbot/22458
18:22 fglock looking...
18:22 nferraz pretty basic, uh?
18:23 pasteling "nferraz" at 194.65.5.240 pasted "hello world" (39 lines, 1.5K) at http://sial.org/pbot/22460
18:23 fglock did you try without '&' ?
18:23 nferraz ha
18:23 nferraz that's it
18:24 nferraz dumb me
18:24 nferraz :-$
18:25 nferraz where should I start hacking, if I wanted to enable an "use warnings" feature?
18:25 fglock hmm - one sec
18:26 fglock "use warnings" works, but it is run-time only
18:27 fglock it verify the generated p5 code
18:27 fglock vierifies
18:27 fglock verifies
18:27 nferraz i see...
18:27 nferraz is it possible to verify the p6 code, before it is transformed?
18:27 fglock a p6-land use warnings would take some work...
18:28 fglock yes - there is a new implementation under way
18:28 fglock do you have a commit bit?
18:28 nferraz no...
18:28 fglock [email@hidden.address] ?
18:29 _marco joined perl6
18:30 nferraz yes, that's me :)
18:30 fglock I'll send you an invitation
18:30 nferraz thanks :)
18:31 stevan_ joined perl6
18:33 fglock sent!
18:34 nferraz received! :D
18:36 nferraz svn co http://svn.pugscode.org/pugs/
18:36 lambdabot Title: Revision 15087: /
18:36 fglock nferraz: I'm currently writing p6-on-p6, which will eventually replace p6-on-p5
18:36 nferraz cool!
18:36 nferraz i want to get used to p6... and while I do that, I plan to write documentation
18:37 fglock the closest you can get to full-p6 is with the Haskell implementation
18:38 nferraz I have just downloaded the code from pugscode...
18:38 nferraz are those different projects?
18:39 fglock see also docs/ and t/ - the official docs are http://dev.perl.org/perl6/doc/synopsis.html
18:39 lambdabot Title: Synopses - perl6
18:39 autark_ joined perl6
18:40 nferraz what mailing lists do you recommend?
18:40 fglock yes - Pugs currently has 'pugs', 'v6.pm', and 'mp6' - and I just created 'kp6'
18:42 fglock the most active lists seem to be Parrot, P6-Language, and P6-Users
18:42 fglock 'Pugs' happens mostly on IRC
18:43 nferraz cool...
18:44 fglock there is a place for starting small projects: misc/pX and misc/pX/Common - you can add your project there
18:44 fglock when it gets more mature it can be moved to the appropriate place
18:46 nferraz ok
18:46 nferraz I tryed to install the project in pugs/perl5/Pugs-Compiler-Perl6
18:46 nferraz is that right?
18:47 fglock yes - that's v6.pm
18:47 nferraz it complains about some missing files in .inc/...
18:47 nferraz and asks to inform the author... :)
18:48 pasteling "nferraz" at 194.65.5.240 pasted "hello world" (19 lines, 687B) at http://sial.org/pbot/22462
18:48 fglock that's a Module::Install message - if you copy the directory to another place it would not complain - but it works anyway
18:49 nferraz ok
18:49 fglock those files are creating at cpan-packaging time
18:50 fglock created
18:50 fglock the place to hack new stuff if v6/v6-KindaPerl6
18:51 nferraz some tests failed... force install???
18:52 fglock yes - there are more tests in the repo than in the published version, and many failures - but you can safely install it
18:53 fglock the failing tests are our 'TODO' list
18:53 nferraz ok
18:54 nferraz btw, the tests are a fine resource for learning the language...
18:55 Limbic_Region the trouble is that thousands of tests without a final spec can lead to problems when that spec changes
18:56 Limbic_Region I believe that tying the spec to the test cases does make this easier - but I am not sure about that
18:57 baest_ joined perl6
18:58 fglock nferraz: you can see the spec+tests linked together here http://perlcabal.org/syn/?
18:58 lambdabot Title: Official Perl 6 Documentation
18:58 baest_ is now known as baest
19:00 TimToady_ Limbic_Region: generally, when I break tests by changing the spec, I go out and change the tests too.
19:01 trym_ joined perl6
19:02 hcarty joined perl6
19:03 Limbic_Region oh - nevermind that last comment then nferraz - our mentally deranged leader takes care of that for us
19:04 Limbic_Region where deranged is used in the statistical permutation sense and not the psychopath connotation
19:04 TimToady_ I'm not deranged, I'm just dingled.
19:04 TimToady_ is now known as TimToady
19:06 TimToady but usually I find that there's no tests yet for the feature in question.
19:06 TimToady like, in this case "is commutative"
19:06 TimToady so there's nothing for me to fix.  :/
19:06 Limbic_Region speaking of which, I had an idea for a special purpose derangement iterator I forgot to implement
19:06 Limbic_Region speaking of which, I had an idea for a special purpose derangement iterator I forgot to implement
19:06 Limbic_Region grrr
19:06 Limbic_Region speaking of which, I had an idea for a special purpose derangement iterator I forgot to implement
19:06 TimToady we are not amused :)
19:06 TimToady was it perhaps junctional? :)
19:07 TimToady you idea seems to autothread IRC
19:07 TimToady *your
19:07 Limbic_Region sometimes it is just lag, sometimes the client actually eats it - impossible to tell and I haven't found a decent time frame for testing if it is lag
19:08 TimToady and the correct time probably varies in any event...
19:09 TimToady unless you're going the speed of light, in which case the correct time is a constant.
19:10 [particle] my word, is it parsec past andromeda already?
19:11 TimToady if this is Thursday, I must be somewhere in the Universe...
19:11 TimToady australia, probably...
19:13 TimToady Limbic_Region: we have already have a derangement iterator
19:13 TimToady ?eval (1..10).pick(*)
19:13 evalbot6 (1, 9, 7, 3, 8, 6, 10, 4, 5, 2)
19:13 jamhed joined perl6
19:15 kasero joined perl6
19:15 TimToady the emperor will soon have no clothes
19:15 TimToady and be all wet
19:15 TimToady &
19:16 kasero left perl6
19:17 Southen joined perl6
19:30 fglock any ideas on how to emulate the GLOBAL namespace in p5?
19:30 nothingmuch translate the calls into call by ref
19:31 nothingmuch and store the pseudo stash  implementing it in some fully qualified var?
19:31 nothingmuch Limbic_Region: sounds like packet loss
19:33 fglock nothingmuch: I've done the call by ref translation already, in order to implement lexical subs
19:33 fglock do you mean storing subroutine names in a hash?
19:33 nothingmuch if the lookup is trivial to inline then make it into a pakcage
19:34 nothingmuch if not, then make into a __lkup_global("NAME")
19:34 nothingmuch screoll to sub query_collection when and ping me at your convenience
19:39 fglock hmm - ($_SUB_zzz || $GLOBAL::_SUB_zzz)->(@args)
19:39 nothingmuch something like that
19:39 nothingmuch either way $*foo should demangle into a fully qualified (or otherwise rooted) lookup
19:41 fglock that's plain $GLOBAL::foo
19:42 nothingmuch oh, sorry, i misunderstood
19:43 nothingmuch you were referring to the actual fallback behavior?
19:44 fglock yes
19:44 nothingmuch in that case perhaps an actual lookup_symbol opcode should be used, which in the future potentially optimizes into ($_SUB_zzz || $GLOBAL::_SUB_zzz) would be more flexible
19:45 fglock ah, right - this is being implemented as an AST transformation
19:45 TimToady under strict there is no fallback to global unless you explicitly import (you also get a snapshot of GLOBAL imported automatically at the start of compilation)
19:46 fglock TimToady: this makes things easier :)
19:46 TimToady made it easier for audreyt too.  :)
19:46 nothingmuch makes it easier to stomache as well ;-)
19:47 TimToady anyway, it's been specced that way for a year or so...
19:48 fglock yeah - I usually read the spec only at random places
19:49 fglock and then I ask here ...
19:50 TimToady well, hey, if the spec were written in Portuguese I'd do much worse than that...
19:52 [particle] "hey, lewis, do you have the map?"  "no clark, i thought you did...."
19:53 fglock there is no map - you just look ahead and walk
19:53 hexmode joined perl6
19:53 fglock or - you just pretend you are following someone
19:54 jferrero joined perl6
19:54 TimToady the emperor is beginning to believe that nobody else has any clothes either.  :)
19:55 [particle] :)
19:56 kolibrie we need to hire new tailors
19:57 TimToady trouble is you have to evaluate the whole tailor series...
19:57 fglock when you are following your own path - does it mean that you are walking in circles?
19:58 kolibrie and the whole 'new clothes' thing started when the emperor got himself a new tailor
19:58 [particle] it's tailors all the way down
19:59 fglock headers and tailors
20:03 meppl gute nacht
20:04 fglock kp6 is about 1/3 implemented today - it's getting close to having a proper compile-time env
20:04 autark_ joined perl6
20:06 fglock pluggable ast transforms are working - it can desugar or optimize and emit p6 code at any intermediate step
20:07 fglock the ast is getting closer to pugs'
20:08 nferraz hey
20:08 nferraz i'm trying to write that text adventure from scratch...
20:08 nferraz but I'm finding some problems with regexes...
20:10 fglock oops - I've got to go
20:10 pasteling "nferraz" at 194.65.5.240 pasted "text adventure" (47 lines, 938B) at http://sial.org/pbot/22466
20:11 nferraz see you later, fglock!
20:11 fglock nferraz: you could you a grammar for that
20:11 nferraz mmm...
20:11 fglock but now &
20:11 Limbic_Region TimToady - a normal derangment iterator walks the permutations of a set where no item remains in the same position between iterations.  The iterator I was talking about is an even more special case than that
20:12 nferraz i'll take a look on grammars
20:12 nferraz thanks
20:13 Limbic_Region nothingmuch - packet loss is possible (using CGI:IRC on feather) but interestingly enough - I only had this problem when I was forced to stop using FF and start using IE
20:13 Limbic_Region grr - I apologize if this gets spammed to the channel again
20:13 Limbic_Region nothingmuch - packet loss is possible (using CGI:IRC on feather) but interestingly enough - I only had this problem when I was forced to stop using FF and start using IE
20:15 trym_ joined perl6
20:15 nothingmuch oh, CGI::IRC is much worse than just packet loss ;-)
20:16 nothingmuch since it has to make a new TCP/IP connection for every line sent you don't really get to reap the benefits of sending lines on a single socket anymore
20:21 nothingmuch hmm
20:21 nothingmuch why is @$@ a syntax error in perl 5?"
20:21 nothingmuch @{ $@ }
20:21 lambdabot Maybe you meant: . v
20:22 araujo joined perl6
20:23 Limbic_Region nothingmuch - the odd thing is that the problem did not manifest itself until FF -> IE.  (I had successfully been using CGI:IRC on Feather since Feather had CGI:IRC)
20:23 nothingmuch ouch
20:23 Limbic_Region in fact, I think one of the biggest reasons CGI:IRC was added to feather is because I asked Juerd for it
20:24 nothingmuch could be subtle socket programming bugs in IE (i wouldn't be surprised)
20:24 nothingmuch does your firewall block ports or is it a layer 7 filter based thing?
20:25 Limbic_Region unfortunately there is a FW blocking ports and HTTP/HTTPS is forced through a proxy
20:25 nothingmuch ouch
20:25 nothingmuch tried ssh over dns?
20:26 Limbic_Region it isn't a matter of not being able to get around the technical impedments - I work for the US Government so violating policy knowingly isn't such a good idea
20:27 nothingmuch the question is whether or not they will catch you ;-)
20:27 nothingmuch but fairynuff
20:27 * nothingmuch offers Limbic_Region some pot instead
20:27 [particle] andy: ping
20:28 * Limbic_Region wanders off
20:41 Alchemy joined perl6
20:41 ludan joined perl6
20:42 prism joined perl6
21:16 stevan__ joined perl6
21:20 autark__ joined perl6
21:25 autark___ joined perl6
21:29 autark_ joined perl6
21:30 elmex___ joined perl6
21:35 autark__ joined perl6
21:37 Aankhen`` joined perl6
21:44 GabrielVieira joined perl6
21:55 luqui joined perl6
21:55 luqui TimToady, how's this for | semantics:
21:55 TimToady greetinks
21:55 luqui go to the longest initial token
21:55 luqui where a token is either something defined by a token rule
21:56 luqui or, if there are literals in the rule
21:56 luqui then constant strings are considered tokens...
21:56 luqui that way, if you put all your lexing in token rules, you can get predictable behavior
21:56 autark_ joined perl6
21:57 TimToady except some tokens are arbitrarily complicated inside, from that definition of token
21:57 luqui but presumably tokens are simple things, from a usage standpoint
21:57 luqui and can thus be combined into DFAs
21:58 luqui (and if not, put out a warning "this token is too complicated to admit optimization")
21:58 luqui and work anyway, just slower
21:58 TimToady from the standpoint of operator precedence (...) is a single token that just happens to dive into a sub parser
21:58 luqui uh, what?
21:59 luqui not when you write it in bison/lex
21:59 SamB eh... that is not a token!
21:59 SamB use better words!
21:59 TimToady couldn't fine one last time we looked...
21:59 TimToady *find
21:59 SamB umless you meant the ... literally?
21:59 TimToady no
21:59 SamB okay, because that definately looks like a non-terminal!
22:00 luqui TimToady, so you're saying that the most logical definition of (...) is:  token paren_expr { \( <expr> \) }
22:00 luqui not rule paren_expr ... ?
22:00 TimToady it's a terminal that happens to contain a non-terminal.  :)
22:00 SamB that would make it non-terminal, too.
22:00 * luqui agrees
22:00 SamB next you will be trying to give leaves subtrees!
22:00 * luqui is using standard parsing vocab, and hoping that perl's redefinition of those terms will follow along
22:01 TimToady standard parsing vocab doesn't quite fit
22:01 SamB perl should not redefine standard parsing vocab
22:01 luqui explain why
22:01 SamB make up new words or something
22:01 SamB or stick qualifiers in?
22:01 TimToady we're not writing a bottom-up parser
22:01 luqui doesn't matter.  that vocab applies to predictive parsers too
22:01 TimToady I'm not that attached to using the word "token" for that kind of rule
22:02 luqui the only kind  of parser that can ignore it is pure recursive descent
22:02 TimToady but the point of that kind of rule is to specify a low-level thing that doesn't deal with auto-whitepspace.
22:02 TimToady and those just tend to be tokens
22:02 luqui so \( ,
22:02 TimToady our model is pretty close to pure recursive descent
22:03 luqui so \( <expr> \) would not be best written as "token", but not because it's not a token
22:03 TimToady however, we assume that it's a hybrid with an operator precedence parser stuck in the middle to descend 24 levels of precedence.
22:03 TimToady or not descend, rather
22:03 luqui okay, well then reconsider my proposal, which just got larger
22:03 luqui allow some way to define your tokens
22:04 TimToady \( ::
22:04 luqui rather than just assuming that it's the constant strings
22:04 TimToady <stuff> :: maybe
22:04 TimToady but then you have to think about how much exhaustive searching you want to do to find the longest one
22:04 luqui in regard to <stuff> :: ?
22:05 TimToady for example, / foo \d+ :: /
22:05 luqui okay, so here's the optimization I have in mind, which you probably already know
22:05 luqui get the "next token" set, and compile them into a dfa
22:05 TimToady a trie is just a hacked off DFA
22:06 luqui and it's not predictable!
22:06 luqui you can't have optimizations change semantics like that!
22:06 luqui There are *tokens* which require regexes to be specified
22:06 luqui and you're not going to pick the longest one if you ignore the regex parts of them
22:06 TimToady I'm not primarily thinking of it as an optimization
22:07 luqui then it's even more important
22:07 luqui (no, just as important :-)
22:07 didie_p6 joined perl6
22:08 luqui such as, say, numbers
22:08 didie_p6 joined perl6
22:09 * luqui calms down
22:10 luqui here's an example from a grammar tutorial
22:10 TimToady the lexers I'm familiar with don't apply longest-token to numbers.
22:10 luqui well, that wasn't a good example because there usually is no ambiguity with numbers
22:10 TimToady they commit to giving you a number as soon as they see a digit
22:10 luqui "A module name is two upper-case letters, followed by 3 or 4 digits:"
22:11 luqui [A-Z][A-Z][0-9][0-9][0-9] | [A-Z][A-Z][0-9][0-9][0-9][0-9]
22:11 luqui despite that being terribly inefficiently written
22:11 luqui we'd break given that
22:11 luqui because there is no initial constant string on either
22:11 luqui so it'd just take the left one
22:12 hcarty left perl6
22:14 TimToady okay, I think I'm convinced, but lemme stew on it a while more.
22:14 TimToady DFAs are well known, and would make for a very fast parser.
22:15 TimToady characterizing where the DFA is required is goodness
22:15 TimToady and where it is "prohibited"
22:16 TimToady but it has potential ramifications for captures and such
22:16 luqui we'd only want to make DFAs for sets of tokens
22:16 luqui don't try to DFAize the whole grammar (or even a lot of it)
22:16 autark___ joined perl6
22:17 TimToady right, but if foo \d+ is a token then you want to be able to retreive foo042 at some point
22:17 SamB for one thing, wouldn't you need like a NIA?
22:17 luqui SamB, a what?
22:17 TimToady NIA?
22:17 SamB nondeterministic infinite-state automaton?
22:17 luqui a pushdown automaton...
22:17 TimToady you mean like the modern egrep algorithm?
22:18 TimToady generates states on the fly based on data?
22:18 integral_ joined perl6
22:18 luqui I think he was just commenting on "DFAize the whole gramar"
22:18 luqui which is impossible, of course
22:18 SamB I mean, your states would form a recursive algebraic datatype
22:19 SamB or something like that...
22:19 SamB anyway, they'd have a tree-like nature
22:19 luqui so of course if foo \d+ is a token you can retrieve foo042...
22:20 luqui you just can't try to retrieve it within the token rule itself
22:20 luqui lest it not be dfaizable
22:21 TimToady we can just stop when we see :: or ( or {...} or...
22:21 TimToady as long as we're clear about how far it goes
22:21 SamB ?
22:21 TimToady but I think I can certainly be argued into quantifiers
22:22 luqui so you're still talking about automatically determining the token set based on the structure of the rule?
22:22 TimToady yes
22:22 luqui i'm arguing against that...
22:22 TimToady I know :)
22:22 luqui okay, good.
22:23 bernhard joined perl6
22:24 SamB what is a token set?
22:24 TimToady the set of prefix strings that you can aim a poor user at and say "it picked this one because it was longer than that one."
22:25 SamB prefix strings?
22:25 TimToady head strings?
22:25 luqui My point with that, if you haven't picked it up already, is say you have a token byte = / [0-1][0-9][0-9] | 2[0-4][0-9] | 25[0-5] /
22:25 SamB why would you be talking to the poor user about prefix strings?
22:26 TimToady because one of the major goals of Perl 6 is to not confuse the user
22:26 luqui and you decide that you want to write it more cleanly: / (\d{3}) { fail unless $1 <= 255 } /
22:26 luqui that shouldn't change any semantics
22:26 SamB but prefix strings sound very confusing
22:26 luqui only make it slower...
22:27 TimToady we could allow around everything between ^ and :: (speaking notionally)
22:27 TimToady allow () that is
22:27 TimToady since we already know the beginning and end of the DFA
22:27 SamB ?
22:28 luqui ugh
22:28 luqui I want to support *any* refactor, not just this specific one
22:28 SamB where does he get these notions?
22:28 dduncan joined perl6
22:28 TimToady well, okay everything up to :: gets in the DFA, but if it matches by DFA you might have to rescan for ()
22:29 luqui ...
22:30 luqui let's see...
22:30 TimToady though I do have a paper sitting on my desk that explains how to use tagged transitions to do capture with a DFA
22:30 luqui so every rule that matches literal text ought to have a :: somewhere in it
22:31 TimToady or ||
22:31 luqui and of course we would descend into subrules
22:31 luqui *wouldn't
22:31 TimToady but only if you want to limit it to that rule
22:32 TimToady so / <digit>* <alpha>* / should still work
22:32 luqui why would that work?
22:32 TimToady why not?
22:32 luqui because you're descending into a subrule?
22:32 TimToady assuming the digit rule doesn't stop it with ::
22:33 TimToady the whole point of all this is the transitive set of prefixes
22:33 luqui why does :: matter though?
22:33 luqui that only fails the current rule
22:33 luqui ::: I can see doing that
22:34 luqui hmm, maybe not.  it's not totally clear to me.
22:34 TimToady :: fails the current alternative
22:34 ingy can i have a pony?
22:34 TimToady not today dear
22:35 ingy but papa, you promised me one 3 years ago!!
22:35 TimToady sorry, on the way here it got run over by an M1 tank.
22:37 TimToady speaking of being run over by an M1 tank, the emperor needs to take a new nap.
22:37 TimToady thunk &
22:39 larsen_ joined perl6
22:43 autark_ joined perl6
22:44 larsen__ joined perl6
22:45 jrigby joined perl6
22:47 ingy I predict that TimToady will grandly unify all of Perl 6 during his nap
22:47 ingy but then forget it all when he wakes up
22:48 TimToady DFA also fixes the problem of parsing recursive metaoperators, I thunk &
22:54 dduncan I've often thought it would be great to have a device that can record dreams and play them back in a way that the awake can experience them somewhat like the dreamer
22:55 dduncan in my case, I feel like I have a lot of creativity in some areas when dreaming that is next to impossible when awake
22:55 dduncan but this could help with the grand unification theory of perl 6 too
22:55 SamB dduncan: funny
22:55 dduncan s/of/that is/
22:55 SamB I can never get things to say the same thing twice when my eyes are closed!
22:56 Limbic_Region joined perl6
22:56 larsen___ joined perl6
22:57 dduncan part of what I mean by creativity, is in writing stories ... eg, I'm not generally someone who writes books or movies etc, but sometimes when dreaming I think, that would make a good book or movie, but I can't render it when awake ... easier to just show the video and sound my brain generated when dreaming
22:58 dduncan of course, sometimes thoughts are highly subjective and it may actually be a terrible result when put in front of others ... but when dreaming, one's emotions tend to highly influence perception
22:58 Debolaz joined perl6
23:09 * allbery_b usually finds that when he remembers some "key insight" from inside a dream, it turns out to be obviously flawed
23:09 lambdabot allbery_b: You have 1 new message. '/msg lambdabot @messages' to read it.
23:10 Psyche^ joined perl6
23:11 luqui it's like getting ideas when you're high
23:14 drrho joined perl6
23:14 allbery_b my dream worlds invariably have some massively contra-factual component, often so obvious that I have something like a narrative "hm, that's odd" while I'm dreaming
23:16 dduncan still, my main point was the usefulness of using dreams to produce fictional stories
23:16 dduncan which can have flaws, being fiction
23:20 dduncan left perl6
23:23 Debolaz2 joined perl6
23:26 Psyche^ is now known as Patterner
23:27 Psyche^ joined perl6
23:28 Debolaz joined perl6
23:28 rashakil joined perl6
23:32 Debolaz joined perl6
23:43 Psyche^ is now known as Patterner
23:44 gnuvince joined perl6

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

Perl 6 | Reference Documentation | Rakudo