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