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