The Return of the Journal : pugs.blogs.com/ | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6
Set by GammaRay on 31 December 2005.
00:27 phredmoyer joined
theorbtwo Evening, people. 00:40
00:41 cdpruden joined 00:48 daja77_ joined 00:52 avar\away is now known as avar
dduncan evening 01:13
svnbot6 r8666 | Darren_Duncan++ | r1965@Darren-Duncans-Computer: darrenduncan | 2006-01-14 17:13:24 -0800 01:17
r8666 | Darren_Duncan++ | in the ChangeLog, cleaned up the modules section
01:24 brainn joined
dduncan new r8665 smoke uploaded for darwin on haskell runcore 01:44
01:51 justatheory joined 01:56 avar joined 02:17 meppl joined
meppl guten morgen 02:19
02:33 scook0 joined, azuroth joined 03:08 stevan joined
dduncan aye 03:40
stevan putter: ping 03:43
putter: I am going to assume you will backlog,.. so I will answer one of your questions 03:45
re: p6 bootstrap
see perl5/Perl6-ObjectSpace/lib/Perl6/MetaModel/Bootstrap.pm 03:46
most of the methods have a POD comment over them with a p6 version and a pseudo-scheme version (which is what inspired PIL^N) 03:47
stevan goes back to watching a movie 03:49
stevan &
audreyt leo_: it's not your problem -- it's pug's build system's 03:57
I've just fixed it
leo_: can we assume that .so support will be there for all(< darwin Win32 linux >) ? 03:58
(for parrot that is)
svnbot6 r8667 | audreyt++ | * Fix embedding of threaded parrot. 04:06
r8668 | audreyt++ | * make FastPackedString even faster with -optc-O3.
04:08 joepurl joined 04:10 ErNci joined 04:12 miyagawa joined 04:16 Amnesiac joined 04:18 forsaken joined
audreyt multi export fixed. testing 04:47
05:02 miyagawa joined, putter joined
putter stevan: thanks. 05:05
re multi export, yay :)
audreyt: so what do you think of a "q_to_eof" construct? It wont work inside a block (which may be a good thing;), but it will give us source filters. Which will unblock rules hackery. But that wont matter much, because it should also allow rapid creation of object spaces on top of the current pugs backend. Thoughts? 05:10
woot
Maybe a Lexer function which sucks up everything. So in Parser, it just looks like a very simple quoting construct. No messing with State input needed. 05:12
Sad thing is, this would have been just as easy as now to do, at any time in the last 1/2 year(?) since iblech created macros. 05:14
audreyt rehi 05:18
hm, q_to_eof.
will "=begin DATA" fix it as well? 05:20
and bind its content to $=DATA
gaal morning. yay exports! 05:21
audreyt gaal: so it's a architectural problem
gaal: in AST.Internals
search for 'low priority' 05:22
you've just made that paragraph into "high priority"
so I implemented it :)
(unionPad was overridding multis even when both side is multi)
this also makes non-same-scope multis work properly.
svnbot6 r8669 | audreyt++ | * Makefile.PL: typo on probing parrot-config.pir. 05:25
audreyt r8670. enjoy :)
audreyt goes looking at parrot embed
gaal cool!
audreyt++ 05:26
svnbot6 r8670 | audreyt++ | * Multisubs now exports properly.
r8670 | audreyt++ | * In a pad, multi entries and non-multi entries are now cleanly
r8670 | audreyt++ | separated. We can hack in "proto" support as another entry type later.
gaal could this have also been causing some of the difficulties in var export? 05:29
putter maybe... exploring... 05:30
gaal anyway, there are one or two nice recfactorings possible in Pugs.Parser.Export now, which is starting to put on some sanity :)
audreyt cool :) 05:31
putter I'm not sure DATA buys you much. The usage pattern would probably be =begin DATA ... =end BEGIN{eval($=DATA)}. Though that gets quite iffy given p6's restrictions on eval. And it might as well be BEGIN{eval <<END ... END} with no DATA. With the same eval disadvantages, because things are happening 05:32
hmm, I was going to say compile time vs parse time, but that's not quite right. hmm... 05:33
audreyt putter: what does quote_to_eof do again? 05:34
putter Ok, right. the competition for q_to_eof wouldnt be DATA, which would require an eval, but rather simply macrofoo <<END ... END. 05:35
q_to_eof whatever === <<'END' whatever END
put that way, I guess we can get started without it. ;) 05:36
05:36 rantanplan_ joined
putter a source filter consists of macro foo($src){...} ... foo <<'END' ... END 05:36
or macro foo($src){...} ... foo q_to_eof ... <EOF> 05:37
audreyt so q_to_eof just returns the string 05:38
putter perhaps the only advantage of q_to_eof is it could be use()d by importing a macro.
audreyt it doesn't do eval either 05:39
I'm still missing something... if we replace q_to_eof with $=DATA and put a =begin DATA immediately after
without =end
so it goes thru EOF
how is that different?
putter "returns" in the sense of parsing as basically a qLiteral, yes.
perhaps I'm missing something. say your DATA section contains sub g(){42} . How does that get run without an eval? Whereas in macrofoo <<'END' sub g(){42} END; if macrofoo is simply macro macrofoo($src){$src}, then g gets defined "normally". 05:42
s/run/defined/
05:43 hcarty joined
audreyt I'm saying 05:43
macrofoo $=DATA;
=begin DATA
sub g(){42}
<EOF>
05:44 hcarty left
putter and you are right of course. 05:45
pugs> macro f($i){say $i;"3"} our $d="hi"; f $d;
does the right thing.
I wasn't expecting $i to be defined. it isn't if it's my $i, but is if its our. 05:46
audreyt and this also dtrt:
macro f($i){say $i;"3"} our $d ::= 'hi'; f $d; 05:47
so you can have it both ways.
putter hmmm 05:48
DATA doesnt exist yet, yes? (quick test example chokes on the "$") 05:50
audreyt indeed. 05:51
gaal: parrot's jit core appears broken. switching to a slower core now 05:52
svnbot6 r8671 | audreyt++ | * fix embparrot build some more.
gaal halfwoot 05:53
putter ok. so no q_to_eof. I'll use macrofoo <<'END' ... END; to exercise object spaces. and general source filtering can wait for another time.
:)
audreyt putter: or you can make $=DATA happen :)
gaal audreyt: in export of subs, need the subName be updated with the new package? is that field used anywhere?
audreyt by evaluating "our $=DATA ::=" whenever "=begin DATA" is seen
otoh, maybe we should just implement $=END.
gaal: it's just for debug 05:54
putter :) "IIIIII muuussssttt resssssiiittt missiioonnnn cccreeeeeppppp"
audreyt and prettyprint
putter: ok, ok, another time
gaal audreyt: oh, error coordinates? better updated it then.. but can wait till after the release
I gotta go to $work now.. see you :) 05:55
audreyt gaal: no, I think preserving it is correct
putter $working on the weekend?
audreyt as export should retain its original pos
gaal weekend's unfortunately over here :)
putter Fri/Sat weekend? or am I totally confused... 05:56
gaal putter: you aren't
putter k
or at least not that regard ;)
gaal heh. well, enjoy! & 05:57
putter 1 am. past time to sleep. play with object spaces tomorrow. thanks audreyt, stevan.
bye! &
Debolaz yawns. 05:59
clkao audreyt: multisub export is fixed? i got _26main_3a_3aplan_16_.FETCH() is not a function 06:00
06:00 gilby joined
audreyt clkao: it's fixed... but maybe it broke pil2js? 06:02
svnbot6 r8672 | audreyt++ | * Disable JIT for embedded parrot; CGP seems unbroken now
r8672 | audreyt++ | so use it instead.
clkao audreyt: it doesn't seem to export 'plan' from Test to main. 06:03
audreyt but normal runcore is fine, right? 06:04
clkao ya
audreyt ok, looking 06:05
svnbot6 r8673 | audreyt++ | * include parrot embed flags in building libHSPugs. 06:08
r8674 | audreyt++ | * in building the final pugs.exe, we don't need to put embed flags in again. 06:11
audreyt duplicated 06:13
06:18 putter joined 06:19 avar is now known as \xc6bot, \xc6bot is now known as avar 06:22 putter joined
audreyt working on a -CPIL1-YAML to ease debugging 06:23
putter btw, I suspect it can't be =END or =begin DATA ... <eof> because the parse is finished by the time they are built. =begin DATA...=end works because the macro use can be placed _after_ the data. q_to_eof only avoids this by introducing a new Lexer "token" `all characters until eof`. 06:24
g'night & 06:25
06:25 avar is now known as \xc6var
audreyt =END can still work through lazy evaluation. maybe. hm. 06:26
but it's suboptimal. 06:27
hm, wait, if you use q_to_eof, there can't be anything else following that line either 06:28
so it amounts to the same thing
06:28 \xc6var is now known as \xe6var
audreyt (under lazy eval) 06:28
although that would mean that the "our ::=" built by the =begin END needs to be evaluated (as a dependency) to the $=END token. 06:29
very much suboptimal then.
putter: you are right :)
so a q:to_eof token type looks attractive now 06:30
06:33 eric256_ joined 06:35 \xe6var joined, forsaken joined, Amnesiac joined, scook0 joined, SamB joined, kanru joined, wilx joined, binary42 joined, brentp joined, webmind joined, chip joined, orafu joined, pdcawley_ joined, Maddingue joined, Odin-LAP joined, ajs joined, pjcj joined, Juerd joined, qmole joined, amv joined 06:37 _brentp joined, webmind_ joined 06:38 pdcawley_ joined 06:39 binary42 joined, qmole_ joined 06:42 chip joined 06:43 forsaken joined, Amnesiac joined, scook0 joined, SamB joined, kanru joined, wilx joined, brentp joined, webmind joined, Maddingue joined, Odin-LAP joined, ajs joined, amv joined 06:45 pjcj joined, gilby left 06:46 Juerd joined 06:47 forsaken joined 06:48 elmex joined, amv joined, Amnesiac joined 06:49 Odin-LAP joined 06:57 orafu joined
gaal audreyt: ping 07:06
audreyt gaal: pong 07:07
gaal: I've got -CPIL1-YAML working :D
gaal woohoo! 07:08
Khisanth now for 2?
audreyt and for PILN 07:11
but it's a DrIFT rule
so is trivial
works for any haskell data structures
gaal needs to get that DrIFT 07:13
07:17 nothingmuch joined
nothingmuch morning 07:21
audreyt yay, p5 YAML::Syck now loads !hs/Foo structures 07:25
svnbot6 r8675 | audreyt++ | * DriFT.YAML: Dumping Haskell structures as YAML. 07:27
r8675 | audreyt++ | * ./pugs -CPIL1-YAML etc works.
audreyt YAML++ # best AST dump format thus far 07:29
gaal++ # making this happen
gaal < audreyt> yay, p5 YAML::Syck now loads !hs/Foo structures 07:36
!!
nothingmuch morning gaal 07:37
want to see the list?
gaal hey nm
how urgent is it? I have to leave the office for a $client
nothingmuch not urgent at all
gaal if this evevning still ok, good
nothingmuch i just need someone with more clue than me to look it over =)
audreyt YAML::Syck 0.25 and handles -CPIL1-Yaml dumps :) 07:43
s/and/uploaded and/ 07:45
gaal don't .hs structures needs to predeclare some schema, because they're unions? 07:49
audreyt no, because they are tagged unions
so their tags becomes their... tags. 07:50
.yaml and eval_yaml now supports utf8 literals.
gaal but the specific data dumped does not include the other possible constructors 07:52
then again when dumping a hashy object undefined fields are not dumepd, either
svnbot6 r8676 | audreyt++ | * Unescaped UTF8 literal support for YAML dump/load, ported
r8676 | audreyt++ | from Perl5's YAML::Syck.
audreyt and we don't care about other possible ocnstructures. 07:53
s/ocnstructure/constructor/
07:54 DesreveR joined
gaal I don't know how loading an object with unhashy representation is supposed to work though, tied objects etc. 08:11
they should supply a .to_yaml method probably.
akf & 08:13
08:25 luqui joined
audreyt clkao: -BJS repaired. 08:37
vs. multi export
2 out of 3 cleaned 08:38
now working on the remaining showstopper, Emit.PIR
svnbot6 r8677 | audreyt++ | * PIL/JS compilation now works with exported multisubs. 08:41
08:54 iblechbot joined 09:02 G2 joined 09:13 elmex joined
svnbot6 r8678 | audreyt++ | * 09-dash-uppercase-c.t should use -CPIR instead of the deprecated 09:20
r8678 | audreyt++ | -CParrot.
09:28 GeJ joined 09:34 nnunley joined 09:49 Grrrr_ is now known as Grrrr 09:57 dolmans joined
audreyt -CPIR-YAML works too. 10:03
audreyt praises YAML again for greatly simplifying debugging
10:24 kane_ joined 10:28 chris2 joined
audreyt lexical hoisting implemented. parrot codegen regained. trying to make :OUTER support now... 10:37
argh, segfault. 10:40
...which is parrot's way of showing its affection
I've missed it for some time now
unsurprisingly, it happens on the Continuation PMC. 10:41
10:42 webmind_ is now known as webmind 10:43 bsb joined 10:52 DesreveR is now known as r0nny 10:56 Southen_ joined
nothingmuch audreyt: =) 11:02
we need someone to run an infobot on #perl65
s/5$//;
this will really help with all our acronyms 11:03
theorbtwo That would be very good. 11:04
Even better is if it can automagically check things in to a dictionary file in the repo.
nothingmuch who runs purl on irc.perl.org?
\xe6var has been hacking some perl bots today;) 11:26
just using the xchat interface
11:31 ninja6 joined
audreyt inner closures implemented with :outer 11:45
working on continuations now
11:56 r0nny joined
theorbtwo You seem to be making quite a bit of progress today... 11:58
audreyt yeah, now I'm finally 1)off work 2)slept for a day
nothingmuch sleep is underrated
12:11 hareldvd__ joined 12:27 pdcawley joined 12:28 iblechbot joined 12:43 pdcawley1 joined 12:50 GeJ_ joined 12:52 pdcawley1 is now known as pdcawley 12:54 sky_ joined
xinming audreyt: ping 12:55
12:58 pdcawley joined 13:07 pdcawley joined 13:11 DaGo joined 13:14 pdcawley joined 13:32 pdcawley1 joined
clkao audreyt: 13:46
$ ab -clkao- [~/work/pugs] ./pugs -Bjs-perl5 -Iext/Test/lib t/builtins/arity.t
pugs: -B: openFile: does not exist (No such file or directory)
what openFile is that?
13:46 bsb joined
nnunley Perhaps the generated js file? 13:49
clkao but -Bjs works
theorbtwo strace and find out? 13:51
From the message, it might be trying to open "".
13:57 DaGo joined 13:59 r0nny joined
svnbot6 r8679 | audreyt++ | * DrIFTify Emit.PIR for the "-C PIR-YAML" backend. 14:19
clkao audreyt: so i found pugs-smokejs.pl's hack for not loading Test.pm is not needed anymore, it's using the precompiled one anyway, right 14:22
?
audreyt clkao: I think so yeah 14:27
clkao axed
hopefully we will have a real smoke output now. 14:28
svnbot6 r8680 | clkao++ | * Remove the "ABSOLUTELY EVIL BLOODY HACK" from pugs-smokejs.pl, which 14:29
r8680 | clkao++ | doesn't seem needed anymore, and was keeping smoke runs for js not
r8680 | clkao++ | working.
r8680 | clkao++ | * Enable the rules tests for smokejs and introduce rlimit for rss.
clkao hmm, # runjs.pl --run=jspm --perl5 t/01-sanity/06-use.t 14:30
pugs: *** Can't locate lib.pm
we can't use lib?
audreyt no way
is it in libpath?
clkao no, crap. my blib6/lib is empty again. 14:31
ah i know, i need to kill all pm_to_blib files 14:33
14:39 pdcawley joined
clkao why do we need "$Test::testing_started = 1;" preset in Test.pm ? 14:40
audreyt no idea :) 14:49
theorbtwo grep for testing_started elsewhere? 14:50
clkao it's used in END{} to print 1..0 14:51
consults svk blame 14:52
and that was audreyt!
actually gaal 14:53
actually mugwump 14:54
obra heh 14:55
audreyt cascading blame sheet 14:56
hm, parrot's lexpad is quite nice, although still has multiple inconveniences 14:57
audreyt finishes codegen for the new lexpad engine
PIL^N->PIR looks very much trivial now.
clkao oooh
theorbtwo Woo! 14:58
audreyt -BPIR passes all 01-sanity except .isa, .ref, .multi, .try
the .isa and .ref just needs implementation
.multi is straightforward as well
have to think more about try{}
clkao now, try to make t/subroutine/currying compile would you
gr, that's pil2js 14:59
iblechbot: summon iblech
15:00 pdcawley joined
clkao lists/reverse.t can't be compiled to pil 15:04
15:10 daja77_ left
gaal heya 15:11
gaal still at $work but back near a network connection 15:12
audreyt hey gaal :) 15:16
I'm finishing up -BPIR
gaal w00t 15:19
gaal purrs at patch lines looking like this: 15:30
- return $ emptyYamlNode{el=YamlSeq n} -- golfme!
:-)
audreyt :D 15:36
audreyt is gaal's loyal caddy 15:37
theorbtwo Oh, audreyt, why are there so few MkPoses these days? for t/01-sanity/03-if.t, I only get /one/ on -BPIL[12]-*, or two on -BPIL[12]$ 15:40
audreyt theorbtwo: because I've de-GADT'ed the PIL structure
so Pos can only attach to Stmt now 15:41
theorbtwo Ah.
audreyt we can make up by having PosExp etc
which would be ugly
theorbtwo Didn't we want fairly high-resolution poses to give high-quality error messages? 15:42
audreyt we do
theorbtwo I wanted them for high-quality syntax hilighting...
audreyt we need a better annotational structure than that
theorbtwo: currently dumping syntax tree gets your further for highlighting than PIL anyway 15:43
gaal haskell golf is so fun. audrey, does the drift-yaml stuff mean that in principle the custom code for PGE emitting could have been replaced with someting more generic? (modulo a custom tag)
audreyt PIL is already too desugared
gaal: why, yes.
gaal eyes PCRE serialization :) but I know nothing about PCRE. Time to learn! 15:44
good, they hide real_pcre but they make a comment about future-proofing and keeping the structure head stable. 15:50
elmex will it be possible to have something like Coro in perl6? for example a network program i use Coro and it's way easier than using threads for async programming 15:51
svnbot6 r8681 | audreyt++ | * -BPIR now returned to its full glory.
r8681 | audreyt++ | * Test.pm doesn't work yet because of named args.
theorbtwo How do you dump syntax tree? 15:52
gaal theorbtwo: where? :d or :D in the interactive pugs
audreyt elmex: sure
theorbtwo From a command line.
audreyt ?eval coro foo { yield 1; yield 2 } foo() + foo()
gah, evalbot off 15:53
theorbtwo: I'll make a -CExp-YAML for you.
theorbtwo That'd be lovely.
elmex audreyt: but what about the threading in the event system? i read about it in some doc in the parrot source
audreyt elmex: see search.cpan.org/dist/Perl6-Bible/li...le/S17.pod 15:54
elmex audreyt: k
15:59 putter joined
putter backlogging, boggles 16:00
audreyt++
audreyt =) 16:01
putter ok, q:to_eof goes on the todo list. but object spaces first I think. 16:02
audreyt YAML dumping now handles even VRefs 16:03
gaal audreyt: at the bottom of DrIFT.YAML, there are instances for 2-tuples and 3-tuples. why are they needed? alternatively, do longer n-tuples also need to be provided in some cases?
audreyt thanks to anchoring
gaal woooo!
audreyt++
audreyt I've not finished porting the marking algorithm from YAML::Syck yet 16:04
gaal DrIFT looks like magic to me. The usage is just "asYaml bar" ?
audreyt and loading of circular structure is still broken (even in p5)
gaal: yes.
it is magic.
look at src/DrIFT/*YAML* 16:05
for the heavy (?)lifting
16:05 marmic joined
audreyt oh wait, you already did 16:05
so yeah, that's all there is
(in particular src/DrIFT/RuleYAML.hs)
gaal yes
audreyt yeah... it is indeed highly magical
"deriving anything whatsoever) 16:06
s/.$/"/
clkao how so? not just a seen hash?
gaal so (VRule (rule@(MkPGERule _))) = do { x <- asYaml rule; return rule{ tag="tag:pugs:rule" } } 16:07
audreyt clkao: not when you are loading
clkao: consider circular $x=\$x
clkao: the dumping is trivial
gaal s/rule\{/x{/ 16:08
audreyt gaal: yes, and then you'd need to add a drift for VRule
theorbtwo Data::Dump::Streamer handles this by dumping with a placeholder, then later code to fill it in with the right thing.
audreyt which I'm doing now anyway
theorbtwo: yes, that's what's needed, I've just not got around to it
gaal wonders if SE Asia is experiencing power failures as all the energy seems to be channeled to one hacker 16:09
audreyt heh
gaal (no offense <clkao ingy> et al) 16:10
putter good night's sleep++ ;) 16:11
svnbot6 r8682 | audreyt++ | * place asYAML in the IO monad so we can serialize everything. 16:12
putter ok, not insane++. pcre bungling negative lookbehind assertion--. hmm, I wonder when we last updated pcre... 16:15
audreyt feel free to up it 16:16
audreyt adds DrIFT to Pugs.AST.Internals and watches the sky fall... 16:19
wow, that exhausted hugs's default heap. 16:22
16:22 iblech joined
audreyt iblech: hey! 16:22
iblech clkao: pong :); looking... 16:23
Hi :))
clkao iblech! 16:24
iblech: how to implement want()? 16:26
theorbtwo Check your context. 16:27
iblech clkao: All calls ship an unboxed PIL2JS.Context object; want() could interpret it
clkao: But, at the time I wrote the context stuff, -CPIL1 reported unreliable context info
clkao but when implementing want itself as a function, it gets its own .context object, right? 16:28
iblech Right; I'd implement want() in P5 Prelude::JS, i.e. as a macro
clkao right. i forgot about that 16:29
but iirc the pil has weird context. not something like list, scalar.. but Var or something
16:30 rhayder joined
iblech I think we've to put the s/sub foo/our sub foo/ hack back in: tnx.nl/4398ZCJI 16:30
IIRC it has Item[Any], Item[Foo], Plural[Any], Plural[Foo] etc 16:31
clkao oh bad.
how can we really fix it? 16:32
putter iblech! :) 16:33
clkao iblech: but we don't need the Test.pm hack right?
iblech clkao: We've to hack Haskell :) PIL1 puts "global subs" (i.e. /^sub/, not /^our sub/ or /^my sub/) in pilGlob, so we can't know the lexical scope the sub used to live in 16:34
clkao mm, can't we kludge it in pil2js layer?
or make everything our for now :p 16:35
iblech clkao: Right; but without the s/use Test// smoking will be muuch slower, as Test.pm will be re-parsed and re-compiled on each invocation, even though we already have Test.pm precompiled -- Pugs doesn't know that we implicitly load Test
clkao iblech: really? it doesn't seem so. i thought runjs.pl already knows how to do that
iblech lines 95-97 are commented in runjs.pl; pugs wasn't/is not able to parse the resulting command line args 16:37
No, we've to s/// the source; by the time the source is compiled to PIL1 the lexpad info is already lost
clkao oh, strange. or maybe it wasn't using the precompield one anyway - because they timed the same 16:38
and for some reasons s/use Test/ out is actually making smoke failing.
that's why i killed it
iblech I just timed it with arrays/elems.t: 19s with r8680, 10s with 8679 (r8680 was the de-hack-commit) 16:39
16:39 justatheory joined
iblech hm, weird 16:39
clkao does pugs-smokejs.pl ../../pugs -w ../../t/arrays/elems.t work for you? 16:41
iblech yep; that was the exact commandline I timed the two revs
clkao weird. it didn't work for me 16:42
iblech maybe your precompiled Prelude.js and Test.js are outofdate?
clkao no, it was clean 16:43
let me try on another box
16:44 GeJ joined
iblech make smoke-js with r8679 worked without problems here (I ^Ced after pop.t): m19s28.vlinux.de/iblech/stuff/pugs-...cc0ca.html 16:46
audreyt Exp yamlified. 16:52
theorbtwo Cool. 16:54
clkao ok.. want to revert it ? maybe something was messed up 16:56
theorbtwo audreyt: Um, ci? 16:57
iblech clkao: ok, I'll also add some more comments 16:58
putter is t/pugsbugs/ still the place for such? pugs -e 'my $s="Foo Hee"; $s ~~ s:perl5:g/(?<!\:)\b(?=[A-Z])/X::/; say $s' --> "X::Foo X::X::Hee". extra X::. Looks like a non trivial logic change is needed to the Prim/Match.hs line 129, r7551's attempt to deal with zero width matches. 17:06
audreyt sure 17:08
iblech clkao: r8683 17:09
svnbot6 r8683 | iblech++ | PIL2JS: pugs-smokejs.pl:
r8683 | iblech++ | * Put the s/use Test// and s/sub/our sub/ hack back in.
r8683 | iblech++ | * See the improved comments for a more-detailled explanation.
putter Quickly scanning the pcre change log did not suggest a pressing need for an upgrade (some security fixes, not much in the way of improved functionality), so I punt. Own problem turned out to be pugs-side. 17:11
17:16 elmex joined
svnbot6 r8684 | audreyt++ | * Pugs.AST.Internals now adopts DrIFT. 17:16
audreyt theorbtwo: check if it worksforyou. 17:20
svnbot6 r8685 | audreyt++ | * The extremely Syck backend to dump parse tree as YAML: 17:22
r8685 | audreyt++ | ./pugs -C Parse-YAML -e '...'
r8686 | putter++ | In global substitutions, lookbehind information is lost, so some 17:28
r8686 | putter++ | patterns with lookbehind yield incorrect results.
r8687 | audreyt++ | * half-finished attempt at dumping the global bindings also. 17:32
gaal rehi 17:36
gaal checks out a fresh wc to try building on native win32...maybe my crashes were all colinux's fault? 17:37
theorbtwo Odd, I keep gettting '<<<<<<<' thingies in my source files. 17:38
The .hs-drifts.
audreyt theorbtwo: rm them and svn up
theorbtwo Oh, svn revert $filename doesn't DTRT? 17:39
ingy a to the the u the the mf D-rey yo!
audreyt greetings ingy. 17:40
ingy yoyoyo 17:41
audreyt how goes? 17:42
ingy dot Net itmfh y'all
audreyt YAML is taking over pugs internals...
ingy about time
audreyt indeed 17:43
ingy audreyt: I noticed YAML::Syck don't sort keys on dump
can it?
clkao /win 35
gaal should it?
isn't that 'spensive? 17:44
audreyt should it?
ingy depends on what you use it for
audreyt we don't mark thinks as !omap
ingy it should be able to I think
audreyt so !map semantics calls for unordered
theorbtwo Well, sorted keys means that you can cmp it.
ingy audreyt: that's not what I'm talking about
gaal theorbtwo: sure, which is why the yaml harness makes sure to explicitly sort :) 17:45
audreyt ingy: I'm confused then
ingy I'm just saying you should have the ability to sort Dump
audreyt oh, a flag
ingy it's important
people like it
it makes them happy
audreyt if you say so
ingy and then they dance
gaal off by default yes
ingy so say I
audreyt implemented.
uploading. 17:46
gaal ingy: do they go parkour on it?
ingy audreyt: feeling a little sluggish tonight?
gaal they dance == good for humanity
ingy YAML.pm has it on by default, fyi 17:47
17:47 dduncan joined
ingy human readable being more important more of the time then speed 17:47
but whateversville
let the people decide 17:48
power to the cavemen, etc etc
gaal ingy: well, at least if it's on by default you can have a :fast flag
and make a synonym for it called :audreylike
ingy $YAML::Audreyonic = 11; 17:49
cause we all know audreyt goes to 11
audreyt ;)
so, syck provides sort_keys 17:50
but doesn't actually implement it!
audreyt goes implementing it for Why
gaal audreyt++ # code traceur 17:51
audreyt ..implemented. 17:54
obra heh 17:55
17:56 hcarty joined, hcarty left
theorbtwo grrrs. 17:58
Enough of this...
theorbtwo rm -r's, and re-cos.
audreyt YAML::Syck 0.26 hits CPAN :) 18:00
obra audreyt++ # perl5 hacking 18:01
(Does it bundle libsyck?)
audreyt sure does 18:02
obra Excellent
audreyt very fast too. SVK trunk already switched to use it.
obra Excellent 18:03
audreyt ingy: enjoy my sluggish implementation :)
obra . o O { When do we get SVK 2.0?}
audreyt okay. all three showstoppers gone for 6.2.11 18:04
18:04 justatheory joined
obra ooh 18:05
audreyt I'll switch to general bugfix mode after 1)journal 2)some sleep
another full day for pugs tomorrow :)
obra nice.
audreyt obra: parrot targetting is back and gens much fasters now
obra !
audreyt the parrotBrokenXXX global flag is gone.
obra nice
Tomorrow is a GPLv3 day for me 18:06
audreyt hmmm?
nnunley Reading it? 18:07
gaal didn't know it went to 3
audreyt hm, anyone got some cycles to remove :todo for unexpected successes?
gaal audreyt: i'll do it, if my computer doesn't crash :/ 18:08
obra nnunley: no. launch conference
audreyt gaal: :/
nnunley Cool. 18:09
nnunley checks the gnu foundation web site to see what's going on. 18:11
obra gplv3.fsf.org 18:13
gaal drats, heatups again. I'm going off to give it a thorought vacuuming or something. bbiab & 18:15
18:29 Limbic_Region joined
gaal praises dyson 18:32
I never thought vacuum technology wouls save my computing day
putter emerges from a maze of twisty little passages, weary and battered, but holding a little shiny thing. 18:33
gaal ooh :)
putter package P { use X; } where X.pm is class A {] multi method A::f(A $self:) {say "yay"} class B(){}multi B::g(){my $a = A.new; $a.m} and P::B::g does the right thing. 18:35
Clearing the way for attempting package Test1 { use ObjectSpace1; } package Test2 { use ObjectSpaceVariant2; } etc. 18:37
audreyt woot! 18:38
clkao iblech: why isn't pil2js using pil2? 18:41
audreyt because there's no pil2 yet ;)
(the current one is a stub that's identical to pil1)
miyagawa: please apply perlcabal.org/~autrijus/tmp/syck-patch.diff when you get a cycle -- that will help Jifty adopt Syck, I think 18:42
putter took an unfortunate amount of hackery. a source filtering macro on a here doc, which eval()s a s/// statement, filtering code with assorted restrictions. Pretty photo ops along the way, like multi B::g{my A $a = .new; } yielding an object of type B. eep. 18:43
gaal audreyt: my box is sustaining a smoke at peaks of 56 C, instead of 83 C which is a definite improvement. I'll do the deyellowing :)
putter all because classes are basically currently a flat namespace. ;)
gaal putter: lol 18:44
putter clkao: re pil2js, what do you mean? it says it uses pil2 right there in the name!?!
clkao but it's using pil1 ?
putter sorry, I should have had a clarifying smiley ;) on that 18:45
clkao XD
putter gaal: re cool cpu, what changed? 18:46
gaal putter: there was crufy between the leaves of the cpu heatsink. I vacuumed it.
s/crufy/cruft/
putter ah. 18:47
gaal these no longer being the 386 days, I'm embarassed to say I couldn't figure out how to detach the fan from the heatsink. but I have a powerful vacuum. 18:48
there are some very weird error messages cropping up here and there from the smoke ("no such sub: &splice" etc.) 18:49
audreyt your prelude is not linked? 18:50
hm, can't be
gaal do we have any kind of historical smoke speed data?
audreyt: my Test.pm is precomp, fwiw
audreyt nod
gaal I remember it once caused us insanity errors
audreyt gaal: smoke.pugscode.org has seconds iirc
gaal don't remember where any why though.
audreyt: I'm looking to measure, uh, average test case throughput or something. 18:51
audreyt *nod*
gaal and iblech++'s server doesn't keep very old smokes
putter gaal: 386 days?
gaal 80386 18:52
clkao iblech: up'ing to trunk i am having _26main_3a_3aplan is not defined. :/
putter ahhhh. :)
putter stops trying to think of things three hundred and eighty six days long.
putter considers creating a script to download pugs in 200 revision increments, timing build, startup, and test times/counts. 18:55
gaal I just remember how a smoke took me about 3 minutes on a fast machine at work now, and we don't have that any more; of course we have zillions of new tests but sometimes I wish pugs were much faster
s/now/once/
undef.t loops? 18:56
great, I just used cpu temperature as an indicator for a test bug.
putter correct first, faster later. I mostly wish more stuff was working. Would trade a 100x speed hit for some of it.
lol 18:57
gaal putter: slow smoke == less inclination to smoke
18:57 SamB joined
audreyt gaal: pugs is about to get much faster :) 18:58
gaal because of? drift?
audreyt because of PILN's use of FPS and Seq
gaal confirmed hang after case 59 in undef
checking.
putter which is less critical than it might be, given audreyt et.al.'s impressive regression cleanup sweeps.
(re less inclination to smoke) 18:59
putter googles FPS...
gaal ohhh, it's a problem with an old external parrot
audreyt: can we interrogate external parrots and refuse to work with old ones? 19:00
putter ok, I assume you don't mean Frag, a first person shooter written in haskell. :)
audreyt ingy: SortKeys defaults to 1 is... sane. 19:01
leo_ gaal: $ ./parrot --version
theorbtwo theorb:/usr/src/pugs> ./pugs -BParse-YAML t/01-sanity/04-if.t
pugs: user error (Cannot evaluate in Parse-yaml)
audreyt I'll adjust accordingly.
gaal aaaah! I foolishly killed the smoke instead of the hung parrot.
leo_: thanks
ingy audreyt++
putter ahhh, fast packed strings.
audreyt with -optc-O3 no less. 19:02
(a trick learned from alioth entries)
(which Haskell is now placed as the more efficient among languages)
putter www.cse.unsw.edu.au/~dons/fps.html
gaal very cool
ingy it makes YAML a great data dumper
leo_ audreyt: parrot r11198 fixes --optimize compile problem 19:03
audreyt # shootout.alioth.debian.org/gp4/benc...p;lang=all
leo_: excellent
gaal audreyt: where does the, uh, process load memoization of parrot happen? 19:05
theorbtwo Bah, I'm an idiot sometimes. I wanted -C, not -B.
audreyt gaal: external parrot? 19:06
that's in Pugs.Embed.Parrot.initParrot 19:07
gaal hm, maybe it's better to do this at build time actually 19:08
audreyt purr?
gaal 0.3.0 on windows causes pugs to hang
let me see first if 0.4.1 doesn't :-) 19:09
audreyt YAML::Syck 0.27 up. 19:14
gaal: pugs always targets the previous parrot _and nothing else_
because it's infeasible^Winsane to support two consecutive parrot releases. 19:15
19:15 justatheory joined
iblech clkao: Got the error here, too. And there seems to be something wrong with PBind; investigating... 19:16
clkao: (PIL2JS worked with r8684) 19:19
gaal audreyt: okay, but we should buildfail if it isn't found...
audreyt gaal: nod, commits welcome :) 19:20
gaal okay, pugs+parrot head works
audreyt: yup
I'm all over it :)
iblech audreyt: tnx.nl/4400ZKQO (:pil.yaml of my $foo = 42) -- is the PBind $foo := $foo supposed to be there? 19:21
theorbtwo It works (after upgrading my YAML), but My God, It's Full Of Arrayrefs. 19:22
audreyt iblech: that is what Exp desugars to
iblech: though I too wonder if we should eliminate it 19:23
eliminated.
putter I'm tempted to write someplace "skills: Tests, Perl6 (basic)\n * add additional s:perl5/// tests to t/rules/s_perl5.t. Including a copy of pugsbugs/global_subst_with_lookbehind.t, and a :todo test showing a :e adverb doesnt exist. \b* Look for other test files which say something like "add more tests" and list them here.\n 19:24
svnbot6 r8688 | clkao++ | Make t/magical/pid.t pass for jsperl5 backend.
r8688 | clkao++ | * Implement unlink().
r8688 | clkao++ | * Implement $*PID.
gaal audreyt: can I use versioning information in Module::Install "recommends" directives? Can I access that data programmatically?
audreyt gaal: yes, you can load META.yml.
with YAML::Syck
gaal :)
pugs should prolly not depend on that just yet
audreyt you can also grep ;) 19:25
iblech: r8689?
svnbot6 r8689 | audreyt++ | * only explicitly rebind pads if we are importing from somewhere else.
gaal but our META.yml doesn't mention parrot at all!
wolverian does parrot use gmp?
audreyt wolverian: it does here
putter skills: haskell (but little pugs)\n * modifiy op2Match x (VSubst (rx, subst)) | rxGlobal rx in mumble to handle look-behind correctly (ie, the "back string" cant simply be discarded).\n..."
wolverian audreyt, ah. thanks 19:26
theorbtwo wonders how much of a performance increase that gave.
putter A TASKS file comes to mind. But if a lot of people weren't psyced, it would be pointless.
gaal audreyt: I mean, you can say build_requires ('ExtUtils::MakeMaker' => 6.15); -- but can you say recommends (parrot => '0.4.1')?
putter listens for signs of psyced people...
audreyt gaal: yes but it would be silly as perl -Mparrot doesn't do anything 19:27
theorbtwo I think they'd self-reinforce a bit.
It doesn't hurt anything to have some TODO about.
iblech audreyt: Thanks :) checking...
gaal LOL: $version .= 0 until length($version) >= length('0.123456');
audreyt remembers that 19:28
clkao iblech: you saw the error? but it passes? 19:29
audreyt putter: you fixed global_subst_with_lookbehind.t ? 19:30
iblech clkao: Saw it; does not pass; seems to be related to the PBind issue audreyt++ just fixed
clkao oh! 19:31
audreyt iblech: will you be @ GPW? if yes, possibility of hackathoning a bit after that?
iblech audreyt: Very unlikely :( school keeps me more busy than I thought it would some months ago... 19:32
audreyt iblech: ow :/ 19:33
putter audreyt: fixed? no.
clkao i can fly to .de the weekend after the conference too. does it motivate you against school a bit more?
gaal audreyt: is there a case where pugs will not attempt to use parrot at all? I'm not sure what's the right thing to do if an old parrot is found 19:36
I thought it was buildfail, but now I'm thinking it should maybe runtimely catchably fail? 19:37
iblech clkao: I'm afraid it's mostly impossible; 2006-03 will be a month full of tests (and 2006-04 will be as well)... while all what mattered in grades 1..11 was to finish them, in grades 12 and 13 every point/mark matters...
audreyt gaal: I think it's runtime nonchecked at this moment
gaal maybe I should worry about the tests before this...
audreyt gaal: catchable fail == improvement
clkao iblech: hm, doens't seem to work for me
audreyt but yes, test is more critical as I still hope to release tomorrow :)
gaal audreyt: the problem is that a too-old parrot causes hangs. 19:38
theorbtwo Oh, hmm.
gaal OK, Test First! :)
audreyt gaal: I understand... maybe hack src/pge/run_pge.pir to check version and die
iblech clkao: here too. Removing the s/use Test// hack seems to fix the problem, but I have no idea why it worked some revs ago
leo_ audreyt: I'll check in the s/Undef/Null/ change for get_global/find_global failure in a minute
theorbtwo The YAML has classes. ./pugs -CParse-YAML t/01-sanity/04-if.t |perl -MYAML -MData::Dump::Streamer=Dump -e 'Dump Load (do {local $/; <>})' does not.
audreyt leo_: cool, then pugs 6.2.0 can use that
theorbtwo gets some coke. 19:39
gaal that seems the best place to put it. I'll have to learn pir though. fun! :)
audreyt leo_: (also the single-closure-entry lambda-lifting thing)
clkao iblech: it hasn't been working for me, hence my commit
iblech clkao: very very weird
audreyt iblech, clkao: PIL's export semantic changed today
clkao i need to get some sleep
audreyt it became all lexical via explicit rebinding to exporter's namespace 19:40
leo_ because 'unless defined' is also false for a defined .Undef global so just wrong
clkao audreyt: drop by london after gpw?
audreyt clkao: I'd much rather drop by tokyo
clkao: .il + schengen is bad enough
.uk is too rushed
clkao too bad
obra we should finish figuring out dates for tokyo hackathon 19:41
but I need to run
audreyt yeah, with lwall and dconway, I'm inclined to arrive earlier / stay later
(also dan kogai's extra-comfortable penthouse is very attractive.) 19:42
ingy audreyt: what do you think about adding a manifest_skip(...) command to M::I
audreyt ingy: I think it's a great idea; please commit 19:43
ingy where is the M::I source?
audreyt svn.openfoundry.org/modinstall/trunk/ 19:44
you are a committer
ingy ok
audreyt: you should remove it from svn.kwiki.org 19:45
19:46 mjl69 joined
iblech clkao: r8690, PIL2JS works here again 19:47
svnbot6 r8690 | iblech++ | PIL2JS: pugs-smokejs.pl: Remove the s/use Test// hack to unbreak PIL2JS.
audreyt ingy: please do it for me 19:49
I need to sleep soonish
ingy audreyt: done 19:51
putter puts shiny thing on dusty shelf. spending a day+ doing object space kludges, to save a few of hours after piln comes out, just isn't the right thing. some nice results, like q:to_eof, but now time to punt.
theorbtwo wonders if there's an (undocumented?) way to get YAML.pm to load a - !hs/Ann as a bless(..., "Ann"), or at least see after loading what it is. 19:52
ingy theorbtwo: yes 19:53
theorbtwo ...and it would be? 19:54
ingy I forget
just kidding
well not really
one sec
putter ;)
19:55 _brentp is now known as brentp
ingy look at t/pugs-objects.t 19:55
audreyt theorbtwo: Class::Rebless 19:56
with YAML::Syck
should dtrt.
(but customized marshall hooks with YAML.pm is saner.)
ingy audreyt: is YAML::Syck going to support the YAML.pm APIs?
audreyt ingy: you mean by making Dumper:: and Loader:: subclasses? 19:57
ingy: I think I'll make a separate release for that. I think.
not sure.
integral since YAML::Syck actually works, shouldn't YAML copy it, rather than the other way around?
audreyt integral: YAML.pm also actually works :) 19:58
(since a week ago or so)
leo_ audreyt: [re find_global] r11200 - a nice rev number fixes it
integral hmm
ingy theorbtwo: t/pugs-objects.t in the YAML-0.50 dist does what you want in both directions
theorbtwo Thanks, ingy. 19:59
ingy integral: if that is a diss, whatever. If not, we're talking about the apis that build of the core YAML stuff 20:00
YAML::Syck doesn't have anything to copy
audreyt: not talking about the subclassing
gaal how does t/builtins/perl2.t get away without a plan?
I thought we required plans 20:01
ingy talking about the YAML::Node stuff
20:03 Debolaz2 joined
iblech Sleep; night all! :) 20:03
audreyt ingy: I think it makes sense to support it. 20:04
ingy let's talk about it later... 20:05
svnbot6 r8691 | audreyt++ | * add a mental note-to-self to chase parrot 0.4.2's Null/find_global semantics. 20:08
leo_ audreyt: s/@ANON/:anon/ 20:14
see also DEPRECATED.pod
audreyt k
leo_ and for the one and only 'main' you could add :main, so that it reads: .sub 'main' :anon :main 20:15
audreyt gotcha 20:19
I'm fixing PGE::Hs n parrot tree to use compreg for PGE now 20:20
though our :main is 'init'
(as is the usual p5/p6 semantics)
svnbot6 r8692 | gaal++ | t/ - 27 tests unexpectedly succeeded. Expect more of them.
audreyt so it remains :anon only :)
leo_ well, :main is that what is running first 20:21
audreyt yup, and in p5/p6 it's the INIT block
leo_ yep 20:22
audreyt hm, looks like PILN can target ResizableFooArray directly
without going thru the PerlUndef foo
leo_ audreyt: while at INIT blocks - you have a proposal for FIRST blocks aka state? 20:23
audreyt leo_: in parrot?
leo_ yes 20:24
audreyt :first(another_sub)
obviously
leo_ that doesn't provide a storage for 'state $a' in the caller
audreyt it does, if we also make :first's pad part of the sub's. 20:25
.sub another_sub :anon 20:26
svnbot6 r8693 | audreyt++ | * Leo pointed out that @ANON etc is deprecated; change to :anon instead.
audreyt .lex "$this_is_initted_only_once" $P0
...
.end
.sub this_sub :first(another_sub)
find_lex "$this_is_initted_only_once" # works
.end
the alternative would be to have a .state form. 20:27
leo_ I'm thinking of a more hackish: .sub foo / .lex pmc $a :state / $a = new .Undef / sub.'entry' = not_first / not_first: ... / .end
audreyt right.
but I think a generic :first can be desugared into that 20:28
and is easier to analyze anyway
esp. when you have multiple
leo_ well, and don't want to desugar much more at PASM/PIR level, so ... 20:29
audreyt nod 20:30
in any case, I'd be fine with a :state adverb.
leo_ ywah, that'll be needed to provide permanent storage, when the sub is left 20:31
audreyt and we can talk about :let :temp :env :our later ;)
leo_ yep Bob Rogers is working on env vars 20:33
svnbot6 r8694 | audreyt++ | * Make YAML a subclass of Typeable, so we can show extra
r8694 | audreyt++ | information even for undef notes.
audreyt col 20:34
cool
also with an :env adverb?
leo_ dunno yet what's the result of it and how it'll look like 20:39
see his mails on p6i '[RFC] Dynamic binding...' (@larry[0] has provided input too) 20:44
audreyt *nod* 20:50
but it's 5am
and I should sleep
see you folks tomorrow :)
leo_ audreyt: good night
audreyt waves &
Juerd re 20:51
Good night, audreyt
Limbic_Region is it just me, but are other people not able to build on Win32? 21:08
Juerd I'm not able to build on Win32, but mostly because I don't use that platform :) 21:11
Limbic_Region heh 21:14
svnbot6 r8695 | audreyt++ | * Fix build before I went sleeping. ;)
audreyt Limbic_Region: try r8696. 21:16
&
svnbot6 r8696 | audreyt++ | * ditto for the two drift targets. 21:17
Juerd Hackaholic :) 21:18
Limbic_Region I have no idea how she is able to maintain a relationship
my wife would kill me
theorbtwo was unaware that she was in one. 21:19
Limbic_Region theorbtwo - IIRC, she mentioned a partner in runtime typecasting
theorbtwo Hm. G'point. 21:20
Limbic_Region or perhaps it was the journal entry that got pulled from use.perl for not accurately portraying real life
it was 1 of the 2
21:23 feng123 joined
Juerd IIRC, she travelled with her partner when she was in .nl 21:23
Limbic_Region "With love and support from many people (my lover/partner balas, several camelfolks and lambdafolks, my family, a few real-world friends), I..."
Limbic_Region wonders if balas is also a hacker 21:24
cause if not - I have no idea how she is able to maintain a relationship
Juerd I haven't seen balas mentioned in hacking context
21:33 justatheory joined
Limbic_Region thanks audreyt as it appears the Win32 build is fixed though not yet finished 21:36
21:42 phredmoyer joined
phredmoyer I'm writing a function that sets NEW.md5 = md5(somefunction) and was wondering if anyone had a suggestion for a built in function which outputs a text seed for md5 21:43
random()::text? 21:45
theorbtwo .perl? 21:47
22:27 macli joined 22:46 rantanplan_ joined 23:10 Debolaz joined 23:12 Cryptic_K joined 23:22 macli joined