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