pugscode.org/ | nopaste: sial.org/pbot/perl6 | ?eval [~] <m oo se> | We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/
Set by diakopter on 11 July 2007.
pugs_svn r19538 | cosimo++ | Refactored `pick' tests under /t/spec/S29-list/ 00:14
r19538 | cosimo++ | "Fudgified" :todo tests markers.
cosimo I'm marking todo tests now with "#?pugs"... 00:15
pugs_svn r19539 | cosimo++ | No more tests here. Destroying folder. 00:17
cosimo Guys, I *have* to have sleep now. It's 1:20 am here. 00:22
Good night to you all. God bless Perl6.
[particle] ~~ 00:23
pugs_svn r19540 | cosimo++ | Refactored container.cat,roundrobin tests into /t/spec/S29-container. 00:31
r19540 | cosimo++ | Fudgifying of :todo test markers. ":depends" are now explained in
r19540 | cosimo++ | the test description.
Coke depends? 00:51
sure, feed the bot, get nothing. ^_^
[particle] what bot?
Coke well, perhaps that's my problem. 00:58
pugs_svn r19541 | lwall++ | [Test] allow todo 'feature', :by<6.28> 01:52
r19541 | lwall++ | [fudge] fix bracket bug on block todo
diakopter rakudo_svn: um, work, please 03:08
pugs_svn r19542 | ruoso++ | [smop] adding a repository for identifier constants in include/smop_identifiers.h 11:27
moritz_ @seen fglock 11:28
lambdabot I haven't seen fglock.
pugs_svn r19543 | ruoso++ | [smop] adding smop_identifiers reference on smop.h 11:30
pugs_svn r19544 | ruoso++ | [smop] created a new test for the stack... this test already counts on the sm0p language already being used inside the C source to help define a set of stack nodes. 12:28
pugs_svn r19545 | ruoso++ | [smop] changing the sm0p representation inside the C code to look just like Perl 6... 12:36
fglock @messages 13:02
lambdabot mncharity said 17h 28m 12s ago: fyi: perl Makefile.PL kp6_mp6 "Please inform the author." error message: sial.org/pbot/29880
mncharity said 17h 26m 41s ago: I didn't run make. Oops. Never mind. Thanks. pmurias++
pugs_svn r19546 | ruoso++ | [smop] moving all builtin identifiers to the constant identifier repository in smop_identifiers.h. Changing every other identifier definition to a constant that points to the constant in identifiers.h. identifiers.h is included just after base.h 13:11
pugs_svn r19547 | ruoso++ | [smop] updating the destroy sm0p code to reflect the use of the constant identifiers 13:13
fglock research.microsoft.com/users/bobmoore/ # parsing algorithms, perl5 implementations 14:51
lambdabot Title: Robert C. Moore - Natural Language Processing Group
fglock javascript.crockford.com/tdop/ # Top Down Operator Precedence, simplified Javascript impl (could be translated to mp6) 14:53
lambdabot Title: Top Down Operator Precedence
pugs_svn r19548 | fglock++ | [kp6-ruby] say "hello, World" 15:16
alester The unhappiness has started: perlbuzz.com/2008/01/perl-6-on-parr...akudo.html 15:19
lambdabot Title: Perl 6 on Parrot is now known as Rakudo - Perl Buzz, tinyurl.com/ywcc5l
avar so we can use "onion" eh? 15:21
[particle] yep, you can use onion
andy: nice response.
avar We always could actually, we eat parrot developers
ruoso you know... there's a funny comment in that post 15:22
alester particle: I'm workin' on a doc explaining the differences.
ruoso saying that the perl6 name should be reserved from when perl5 is able to implement Perl 6
[particle] did you ever know that you're my hero?
ruoso :P
alester I am the wind that breaks beneath your wings. 15:23
[particle] ...then my wife *hates* you.
alester What'd I ever do to her? 15:24
[particle] you stink, man.
ruoso anxious to have a usefull version of smop to see it it gets to the radar of Perl 6 implementations... 15:25
[particle] ruoso: you can put it on the radar... advertise!
ruoso heh 15:28
ruoso hates advertising vaporware... I need to get at least something running before giving it a advertisement shot...
meppuru hm 15:33
rakudo sounds japanese
pugs_svn r19549 | ruoso++ | [smop] adding two other native types: idconst and bytes. idconst will be used to initialize the constant identifiers to be used in sm0p and s1p. Added a test for the const identifier. 15:34
[particle] because it is japanese
rakudo.org/
lambdabot Title: Rakudo.org:
alester ping rakudo.org 15:35
I must be the only one with rakudo.org resolving to petdance.com's IP
Coke that's not entirely surprising, since it's Andy's domain. 15:37
meppuru 楽土 らくど
alester You mean "your", right?
meppuru the paradise
alester o/` and we'll be rockin' the Paradise.... o/` 15:38
Coke peers at alester's psuedo. 15:39
"how was I supposed to know you'd be robbing your OWN HOUSE!?"
pugs_svn r19550 | ruoso++ | [smop] In theory, we have constant identifiers already... with the help of a little script that takes the smop_identifiers.h file and generate the code to init and destroy them... 16:17
ruoso with his hands in his boot straps and ready to pull
pugs_svn r19551 | ruoso++ | [smop] adding the main smop.c file that have the smop_init and smop_destr functions... 16:19
ruoso fglock, I think I'll need help on the sm0p part... to create an emitter for that... 16:20
and I still need some idea on the best way of putting a preprocessor before cpp 16:21
fglock ok but coffee 16:23
ruoso coffe.HOW 16:24
ruoso It's weird to realise that after reinventing the wheel you make it looking like someone else's 17:57
moritz_ lol
ruoso fglock just noticed the resemblances between smop and forth, which made me realise that smop use the same technique as the older forth compilers 17:58
indirect-threading
en.wikipedia.org/wiki/Threaded_code..._threading
and even the implementation looks alike 17:59
www.complang.tuwien.ac.at/forth/threading/
lambdabot Title: Index of /forth/threading
ruoso a benchmark... in the end there's a link to the code, which looks like how smop implements it...
the good news is that I was worried about smop performance, but according to wikipedia, indirect threading is "Faster than byte code." 18:00
apple-gunkies Hi folks. I've read through S05 and A05, and am looking at the lolcode grammar, and still don't really understand: What, precisely, is supposed to be the difference between a rule and a token? Can someone explain, please? 19:34
moritz_ rule = token + :sigspace-modifier 19:35
so regex = without modifiers
token = implied :ratchet (backtracking control)
rule = :ratchet :sigspace
I think that's a FAQ by now - we should put it up somewhere ;) 19:36
apple-gunkies ok, simple then. Guess I was looking too hard for some profound difference. Thanks :) 19:36
and yes, the synopsis doesn't really spell it out 19:37
pugs_svn r19552 | ruoso++ | [smop] a small exercise on how to transform sm0p code into C code... sm0p2C.txt...
[particle] apple-gunkies: Just as C<rx> has variants, so does the C<regex> declarator. 19:41
In particular, there are two special variants for use in grammars:
C<token> and C<rule>.
from S05
granted, it's halfway down, buried in =head1 Regexes are now first-class language, not strings 19:42
pugs_svn r19553 | ruoso++ | [smop] sm0p2C.txt: uses gcc static anonymous array in the exercise code.
TimToady most of the synopses desperately need reorganizing, but I'm afraid to break smartlinks 19:47
moritz_ TimToady: it will not get better if you wait longer 19:48
TimToady I need something that chases smartlinks the other direction and tells me when I've broken one. :)
moritz_ let's rephrase it: if you reorganise the spec, I'll invest some time to unbreak the smart links
TimToady that's the other approach, yeah 19:49
ruoso wonders how to create more room for optimizations in the smop stack... having to run a code like the one in sm0p2C.txt everytime entering a new stack frame...
TimToady but it's a convenient excuse when I don't want to admit having the time or energy :)
ruoso: are there any Forth implementations that do continuations? 19:50
s/any/any fast/ 19:51
ruoso TimToady, I don't know Forth that much...
TimToady it's just like Japanese, only with a different vocabulary 19:52
well, different writing system too...
ruoso hmmm.. as I don't know japanese, comparing them do make sense... 19:53
:P
wolverian are there millions of implementations of japanes, or only one (or a few variants)?
s/nes/nese/
TimToady I dunno, but most of them are pretty fast implementions, faster than my brain can process 19:54
ruoso But I'm trully concerned about the possible performance impact of the dynamic and polymorphic eval of smop 19:55
TimToady, take a look at the sm0p2C.txt file
that's the code that will be run everytime...
because the stack nodes are dynamic
[particle] ...every time an opcode farts? 19:56
ruoso everytime a new recursion in the stack is needed
unless some optimization is made
I just need to make sure I leave room for it
TimToady where's Lisp when you need it?
[particle] (here(right)) 19:57
ruoso at least I feel that sm0p is usefull... having to write that C code seems awful
it actually *was* awful to write the exercise
TimToady You can solve any problem in computer science with another level of indirection, except for the problem of too many levels of indirection. :) 19:59
ruoso heahahaehe
indeed..
but I feel like there is some way to optimize it... 20:00
I just can't see it clearly right now
and I feel unconfortable to keep going without knowing that there's actually room to optimize it...
TimToady well, you probably need more contextual information on where continuations are guaranteed to be single-use 20:01
ruoso I was thiking about some long-living constant copy of that structure that is then clonned in a more efficient way
TimToady but I'm not really an expert on CPS 20:03
ruoso TimToady, CPS is not the big deal here.. 20:03
but the whole stack thing
pmurias ruoso: is it worth to have everything stackless?
ruoso pmurias, other way the C stack would bite me
at some point
ruoso when trying to implement continuation for instance... 20:04
because I would have to mix the C stack with the Perl stack
and that seems very hard to keep up
pmurias i wander about keeping the c level stackfull and the layer in bytecode in stackles 20:06
ruoso it's hard to bootstrap the oo system that way
apple-gunkies particle: I had stepped away, thanks for following up. I had thought that regex and rule were synonymous. It all makes more sense now;) 20:08
integral (chicken scheme does some tricks to use the C stack, yet do GC and continuations)
TimToady googling for "efficient cps continuation" gives some interesting hits
cosimo Hi all! 20:09
moritz_ hi cosimo 20:10
cosimo I'm sorry, I'm always breaking in with some newbie question... :-) 20:11
Even this time :)
Given this code: 20:12
if $?PUGS_BACKEND ne "BACKEND_PUGS" { 20:13
skip_rest "PIL2JS and PIL-Run do not support eval() yet.";
exit;
}
Is it correct to replace it with #?pugs: skip 'reason' with a block?
I don't think they have the same meaning... 20:14
moritz_ since PIL2JS and PIL-Run are bit-rotten, you can just ignore that block
moritz_ aka delete it 20:15
cosimo thx
moritz_ in the cleaned-up version
pmurias svk-- #behaving strangly (mergin stuff which hasn't changed) 20:16
ruoso going home & 20:17
ruoso have to take his mind in order...
pugs_svn r19554 | cosimo++ | Refactored eval tests, moved under t/spec/S29-context/ 20:19
r19554 | cosimo++ | Ignored old PIL2JS/PIL2Run backends notice, they are no more used, it seems.
r19555 | cosimo++ | Refactored 'defined' builtin tests, moved under t/spec/S29-scalar 20:22
pugs_svn r19556 | cosimo++ | Refactored 'die' builtin tests, moved under t/spec/S29-context 20:24
r19557 | cosimo++ | Refactored 'die' builtin tests, moved under t/spec/S29-context 20:25
pugs_svn r19558 | cosimo++ | Refactored evalfile tests under t/spec/S29-context 21:20
cosimo Are these tests relevant anymore? perlsix.org/svn/pugs/view/t/builtin...it-in-if.t 21:33
lambdabot Title: view: /pugs/t/builtins/control_flow/exit-in-if.t (Rev: HEAD, via SVN::Web), tinyurl.com/2ohtud
cosimo perlsix.org/svn/pugs/view/t/builtin...low/exit.t
lambdabot Title: view: /pugs/t/builtins/control_flow/exit.t (Rev: HEAD, via SVN::Web)
moritz_ looking...
I seen no reason why they shouldn't be relevant 21:34
look like old pugs regressions, but other implementations might run into the same errors
cosimo They seem to be about PIL2JS
moritz_ but they test valid perl 6 21:35
cosimo ok!
pmichaud I've been thinking that specific compiler regressions could go into a regressions.t 21:40
it would still get run by all implementations, but might make the test organizations a bit easier 21:41
pugs_svn r19559 | cosimo++ | Refactored exit and nothing tests into t/spec/S29-context
cosimo pmichaud: by implementation you mean pugs, rakudo, and such..? 21:42
pmichaud cosimo: yes 21:42
[particle] as in, t/spec/S29-misc/regressions.t ?? 21:43
pmichaud well, it could even be t/spec/S29-context/regressions.t
[particle] ok, sure
pmichaud it depends a bit on the test... if it looks 'funny' with respect to the other tests, then perhaps it belongs in regressions.t 21:44
Andy++ # "you can't declare a de facto standard" 21:47
alester Heh, thanks.
pmichaud that's a wonderful comment/insight
meppuru good night 21:48
pmichaud afk -- heading home 21:53
alester pmichaud: Seriously.
We could say "This is the official Perl 6", but everyone's free to ignore it.
pugs_svn r19560 | cosimo++ | Refactored time-related function tests into t/spec/S29-time/ 21:55
pugs_svn r19561 | cosimo++ | Fudge-ified :todo tests 22:00
r19562 | moritz++ | Test suite refactoring:
r19562 | moritz++ | * move ignorecase regex modifier tests to t/spec/S05-modifier/*
r19562 | moritz++ | (still need more tests here)
r19562 | moritz++ | * small correctiion in t/builtins/math/log.t
r19563 | cosimo++ | Added all t/builtins/hashes/exists.t tests to existing 22:04
r19563 | cosimo++ | spec/S29-hash exist tests.
[particle] (test refactoring)++ 22:05
pugs_svn r19564 | cosimo++ | Refactored and merged existing hash.delete() tests 22:07
r19564 | cosimo++ | with spec/S29-hash/delete.t tests
pugs_svn r19565 | cosimo++ | Moved system() test script under t/spec/S29-os/ 22:10
r19566 | moritz++ | moved :basechar tests to t/spec/S05-modifier/basechar.t 22:14
r19567 | cosimo++ | Refactored isa hash tests into t/spec/S29-hash/
pugs_svn r19568 | moritz++ | test for repetition modifier under t/spec/ 22:19
pugs_svn r19569 | moritz++ | moved tests for the :continue regex modifier 22:22
[particle] i like that this test refactoring means nobody's tests will work right until utils/fudge is ready :) 22:24
cosimo :-) 22:25
moritz_ [particle]: I thought it already handles the simple cases?
[particle] moritz_: it did, until everything changed
so now it doesn't handle any cases
i mean, no implementation handles #?<impl>: todo 22:26
moritz_ but fudge does the for the implementation, doesn't it?
of course it's not yet integrated into the "make smoke" thingy
[particle] never tried it
i've been meaning to, but too few cycles 22:27
cosimo [particle]: maybe I should change {#?<impl>: todo} with {#?<impl>: todo ''} ?
[particle] cosimo: i don't think that'll matter 22:28
in any case, rakudo hasn't been tested with fudge
larry may have tested pugs, iunno
moritz_ a small question of spec interpretation: my $s = "aB "; $s =~ s:ii/.*/abcd/; should $s now be "aBcd" or "aBcD"? 22:36
moritz_ so if the last matched char has no case information, is the rest of the substition string left unchanged? 22:37
[particle] i'd hope the rest is left unchanged. 22:40
moritz_ ok
pugs_svn r19570 | moritz++ | Added tests for the :ii modifier 22:45
cosimo and good night #perl6 22:47
moritz_ good night cosimo ;)
Auzon gnight!
pugs_svn r19571 | moritz++ | tests for the "smart" :ii modifier 22:56
mncharity perl script/kp6 -Cruby -e 'say "hello, world!"' :) fglock++ 23:57