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
|