pugs.blogs.com | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | <stevan> Moose... it's the new Camel ":P | .pmc == PPI source filters!
Set by Alias_ on 16 March 2006.
00:02 Quellism joined 00:03 mako132_ joined 01:03 mako132_ joined 01:39 sri_ joined 01:40 multic joined 01:44 mako132_ joined 01:46 cmarcelo joined
cmarcelo fglock: ping? 01:47
02:00 _SamB_ is now known as SamB 02:09 weinig is now known as weinig|sleep 02:27 justatheory joined 03:41 FurnaceBoy left 03:42 bpederse_ joined
svnbot6 r10460 | audreyt++ | * Pugs.Shell: For editline-based readlines, don't use rl_catch_signals. 03:59
04:00 jserv-- left 04:14 shachaf joined 04:22 QtPlatypus joined
svnbot6 r10461 | audreyt++ | * GHC 6.5-trunk now supports parsing UTF8 literals in strings, 04:26
r10461 | audreyt++ | whilst GHC 6.4 treated them as Latin1. This mean we cannot
r10461 | audreyt++ | use UTF8 literals "?\194?\165" in strings now and has to always write
r10461 | audreyt++ | "\xA5", until GHC 6.6's release.
r10462 | audreyt++ | * Lexical imports should be allocated "state" storage class, 04:36
r10462 | audreyt++ | not "my" storage class, so it doesn't get reset upon
r10462 | audreyt++ | subroutine entry:
r10462 | audreyt++ | sub foo {
r10462 | audreyt++ | use SomePackage;
r10462 | audreyt++ | some_imported_sym(...);
r10462 | audreyt++ | }
r10462 | audreyt++ | foo();
r10462 | audreyt++ | foo(); # &some_imported_sym should persist
cmarcelo audreyt: ping? 05:53
05:55 coumbes joined
audreyt pong 05:55
TimToady pung 05:57
cmarcelo audreyt: i'll commit now the code for JudyHS and HSIter, do you mind taking a look? i'm must be doing something wrong with Iter pointers because it segfaults in the first (only =P) iter test... 05:58
svnbot6 r10463 | cmarcelo++ | * FFI for JudyHS and HSIter. Iter part still isn't working. 06:00
audreyt I'll take a look :) 06:01
cmarcelo just a skim to check if i'm not doing anything "absurd" with this pointers. tests/TestJHS.hs, fun toListIO is a good start point ...
the segfault happens in the first call for an iter-enabled function.
audreyt ok. I'm fixing the parser, give me 5mins 06:02
cmarcelo ok 06:03
audreyt obvious question: does the corresponding test in C pass? 06:05
i.e. where is the equiv C code and if it's not there, can you code one up? 06:06
cmarcelo i will check this.. 06:07
06:07 Ymmv joined
cmarcelo (too much trust in spinclad's log messages =P) 06:08
audreyt trusts is fine but tests are better :)
svnbot6 r10464 | audreyt++ | * "not" is now unary; implement the "loose unary" prec level. 06:12
r10465 | audreyt++ | * Pugs.Eval: remove the "not()" hack.
r10466 | audreyt++ | * Change file tests to use native POSIX stats in preparation 06:15
r10466 | audreyt++ | of true chained tests.
r10467 | audreyt++ | * Upgrade to FPS trunk for even faster list fusion.
r10468 | audreyt++ | * some test triaging to remove outdated assumptions
TimToady I don't see the problem with: my @a0 = () and $x0 = 1; 06:17
should be equivalent to $x0 = 1 if my @a0 = ();
on the other hand, you did say "triaging"... 06:19
audreyt uhm
if list assignment is listop
TimToady and is looser 06:20
audreyt right. mea culpa
TimToady we could certainly disallow "my" on the other side though... 06:21
?eval my $a = 1; 06:22
lambdabot tomorrow i share next mathematical secrety
06:22 evalbot_10448 is now known as evalbot_10464
evalbot_10464 \1 06:22
TimToady ?eval my $a if 1;
lambdabot intuitive != imperative
evalbot_10464 Error: unexpected "i" expecting comment, trait, "=", ".=", ":=", "::=", ";" or end of input
TimToady ?eval (my $a) if 1; 06:23
lambdabot one prollem. T broke confines of the visual basic langage and would not compile
evalbot_10464 Error: Undeclared variable: "$a"
TimToady ?eval say my $a 06:25
lambdabot nsa try kill me numerous times
evalbot_10464 Error: Undeclared variable: "$a"
TimToady ?EVAL 1 06:26
lambdabot Unknown command, try @list
TimToady ?hmm
lambdabot Unknown command, try @list
theorbtwo @list 06:27
lambdabot list [module|command]. Where modules is one of:
babel base compose dice dict djinn drHylo dummy dynamic elite fact haddock help hoogle instances karma lambda localtime log more pl plugs poll pretty quote search seen slap spell state system todo
topic type unlambda version vixen where
theorbtwo @list lambda
lambdabot lambda provides: lambda define get-definition definitions resume
theorbtwo @lambda 1 + 1
lambdabot 2
TimToady @list help 06:29
lambdabot help provides: help
TimToady @help 06:30
lambdabot help <command>. Ask for help for <command>. Try 'list' for all commands
TimToady @help ?
lambdabot help <command>. Ask for help for <command>. Try 'list' for all commands
TimToady @?
lambdabot Maybe you meant: . v
TimToady @eval
lambdabot antiparsimony were 100% correct...
TimToady @eval 06:31
lambdabot obviously you never heard of Tier. theoretically it would work using nanobots
TimToady !eval
audreyt tries to contact dons to have lambdabot shut up
TimToady ?
@
@exit
lambdabot Maybe you meant: elite quit
TimToady @elite quit 06:32
lambdabot QuIt
TimToady ?eval say (my $x)
lambdabot just seeing how offtopic i could get everyone
evalbot_10464 Error: Undeclared variable: "$x"
theorbtwo audreyt: Take your op bit, and kick him? 06:33
audreyt will do that if dons doesn't respond in a few mins 06:35
svnbot6 r10469 | cmarcelo++ | * Example code from JudyHS manual, including new HSIter functions. 06:39
cmarcelo audreyt: i grab a sample code from JudyHS manual (spinclad keep them in track) but it didnt work here too =( 06:40
svnbot6 r10470 | audreyt++ | * TimToady++ pointed out that "and" is indeed looser
r10470 | audreyt++ | than ()= and asavige's original test is correct.
audreyt @seen spinclad 06:41
lambdabot spinclad is in #perl6. I don't know when spinclad last spoke.
cmarcelo [spinclad] idle 118:10:47 ... i'll email him asking about it..
svnbot6 r10471 | audreyt++ | * Parser: separate the "," level with the "Y" level. 06:43
r10472 | audreyt++ | * make -e test nonfatal again
audreyt TimToady: I see this 06:46
eval '@a[0,1] = @a[1,0]';
ok($!, "lvalue slice without parens fails");
what should the error say?
"Array doesn't support Scalar assignment" ?
TimToady doesn't seem quite right 06:47
audreyt s/Array/Slice/
TimToady Slice assignment requires parentheses, maybe
Did you mean "(@a[0,1]) = ..."? 06:48
audreyt 'k
TimToady sure is tempting to exempt commas.
audreyt and reintroduce the trailing comma disambig?
@a[func(),] 06:49
lambdabot Unknown command, try @list
TimToady Well, we can always relax it later.
Well, my brain is running out of "today", so I'd better go put it to bed. 06:54
audreyt good night :) 06:55
audreyt triages on
TimToady :)
&
06:56 Khisanth joined
cmarcelo audreyt: besides that error in HSIter, everything else seem to be fine. maybe its ok to start implementing a more useful/concrete API, what do you think? 06:58
audreyt yes. do you want to work on a spike solution to "BitSet a"? 06:59
using StablePtr
that will let us have some preiminary benchmark results 07:00
07:02 beppu joined
svnbot6 r10473 | audreyt++ | * chained assignment now returns lvalues properly: 07:04
r10473 | audreyt++ | $x = %y = (1,2,3,4);
r10473 | audreyt++ | * TODO the remaining ()= tests.
cmarcelo audreyt: i like the idea.. i want to deal with these StablePtr ASAP =)... just to check: mapping things of type a into bit values, right? what would be a reasonable time frame for this? 07:05
audreyt wel, it's just newStablePtr, castStablePtrToPtr, and ptrToWordPtr 07:06
third-party/HsSyck/Data/Yaml/Syck.hsc has some example 07:07
so... one or two days?
ptrToWordPtr already gives you "Value"s 07:08
so the three functions together converts anything into a Value
to get something back from the value, use their reverse
wordPtrToPtr, castPtrtoStablePtr, and deRefStablePtr
you may also want to hook a freeStablePtr finalizer to the Judy itself 07:09
using System.Mem.Weak; but that can wait; memleak is not a big deal at this moment
cmarcelo ok.. i'll try to come up with something tomorrow then =) 07:12
audreyt cmarcelo++
cmarcelo a pugs related question: i just did "Makefile.PL && make && sudo make install", and when running pugs in any other dir than pugs svn root, it warning about dont finding Prelude and take time to load from sources.. is supposed to be like this? 07:16
audreyt no. 07:18
what is the revision? 07:19
./pugs -V:pugs_revision 07:20
cmarcelo r10459.. i'll try a more recent.. 07:21
audreyt it worksforme 07:23
cmarcelo is hs-plugins required for prelude works? 07:24
audreyt not at all 07:25
can you look to see if there's a blib6/lib/Prelude.yml ? 07:26
also, try rm it
and then "make" and then make install" again
the Prelude.pm.yml should be there on one of the libs
in the path obtainedwith "pugs -V"
cmarcelo i've cleaned now i'm making it again... Prelude.pm.yml is in /usr/lib/perl6... 07:30
07:32 iblechbot joined 07:37 Aankhen`` joined
cmarcelo no no =(.. the error is "user error (no tag found)"... i'm on r10463 now (trying to get a more recent but svn seem blocked).. 07:46
well.. going to sleep now. tomorrow i try it again. bye 08:08
08:08 cmarcelo left 08:12 |mjk| joined 08:30 lisppaste3 joined
audreyt ?eval 1+2 08:33
08:33 evalbot_10464 is now known as evalbot_10473
evalbot_10473 Can't exec "./pugs": No such file or directory at examples/network/evalbot//evalhelper.p5 line 46. 08:33
08:34 marmic joined
svnbot6 r10474 | audreyt++ | * $a = $b = $c = 3; 08:37
r10474 | audreyt++ | The $b and $c here should be rvalues.
r10475 | audreyt++ | * More chained assignment fixes. 08:40
Juerd ?eval 1+3 08:41
evalbot_10473 Can't exec "./pugs": No such file or directory at examples/network/evalbot//evalhelper.p5 line 46.
Juerd It appears it doesn't depend on the expression :P
svnbot6 r10476 | audreyt++ | * ...more triage... 08:46
audreyt a sec :) 08:50
svnbot6 r10477 | audreyt++ | * not() is no longer listop. 08:56
r10478 | audreyt++ | * unTODO passing test.
08:56 trym_ joined
svnbot6 r10479 | audreyt++ | * Remove t/oo/class/require.t as this form is now bogus: 08:59
r10479 | audreyt++ | require ::Class::Literal;
r10479 | audreyt++ | as is this:
r10479 | audreyt++ | my $foo = ::Class::Literal;
r10479 | audreyt++ | require $foo;
r10480 | audreyt++ | * readline() autochomps, so it's now a dual to say(), not print() 09:02
gaal ooh audreyt++ # r10462
audreyt :) 09:03
for a 8-bytes patch, it's long overdue...
gaal :) 09:04
@pl (.) 09:05
lambdabot (.)
gaal @pl flip
lambdabot flip
09:07 coumbes joined
gaal @pl \x y -> x+y 09:07
lambdabot (+)
gaal magic!
09:07 trym__ joined
gaal @pl \a b c -> (-b + sqrt(b*b - 4*a*c))/(2*a) 09:13
lambdabot ap (flip . ((flip . (((/) . subtract) .)) .) . liftM2 (.) (+) . ((sqrt .) .) . flip ((.) . (-) . join (*)) . (*) . (4 *)) (2 *)
svnbot6 r10481 | audreyt++ | * fps: add -fasm to .Lazy* at the suggestion of dons++ to avoid linux build errors
gaal what monad is that lift in? 09:14
integral @type liftM2 (.) (+) 09:16
lambdabot forall b a. (Num b) => (b -> a -> b) -> b -> a -> b
audreyt the ((->) a) monad 09:17
I'm about to take all defaulting-to-$_ out from builtins 09:18
svnbot6 r10482 | audreyt++ | * fps: -optc-O1 is sufficient and gens better code than -fasm.
audreyt expect massive breakage.
gaal urp, why?
audreyt reducing parsing ambig
.say; 09:19
instead of
say;
09:19 BigBear joined
gaal hmm 09:20
@type (->) 09:21
lambdabot parse error on input `->'
svnbot6 r10483 | audreyt++ | * take out the remaining $+_ from Perl6::Spec::Functions
gaal so the topic is the default invocant, but not the default argument 09:22
svnbot6 r10484 | audreyt++ | * topic_in_map.t: "int $_" should now be writtern ".int", 09:23
r10484 | audreyt++ | not "int". (The latter might actually mean ::int some day.)
audreyt yup 09:25
gaal I don't get what ((->) a) means, what kind of thing is (->)? 09:26
integral type constructor. (->) :: * -> * -> *; takes two types, and returns a new one. 09:27
gaal also, does anyone know where ghc docs talk about type error messages, specifically what's the difference between {a, b, c, ..}, {a1, a2,...}, {t1, t2...} 09:28
integral: so what's the ((->) a) monad mean? 09:29
gaal hasn't hacked haskell for over a month, I forgot how this brainpain feels like
svnbot6 r10485 | audreyt++ | * repair hangman.p6. 09:32
09:32 nperez joined
audreyt ?eval 123 09:33
09:33 evalbot_10473 is now known as evalbot_10484
evalbot_10484 123 09:33
svnbot6 r10486 | audreyt++ | * Getopt::Std should have a Makefile.PL. 09:35
audreyt gaal: it is jsut the Reader monad. 09:37
svnbot6 r10487 | audreyt++ | * Massive changes in tests from int() to .int, etc, to prepare
r10487 | audreyt++ | for the "no-defaulting-to-$_-anymore" change.
r10488 | audreyt++ | * ditto.
audreyt the "a" is the environment in "ask" 09:38
((->) env res) is an action in a reader monad
conceptually, actions in the reader monad behave asif it has one extra argument pre-curried for it 09:39
which can be retrieved with "ask"
gaal funky 09:40
audreyt putter: is ext/Perl6-Grammar still relevant? 09:44
svnbot6 r10489 | audreyt++ | * Log::Selective: more typo fixes
r10490 | audreyt++ | * lwp: use .trans instead of ~~tr///. 09:47
09:53 trym_ joined 09:54 unobe_____ joined
svnbot6 r10491 | audreyt++ | * Repair Set::Infinite. 09:56
10:04 penk joined
svnbot6 r10492 | audreyt++ | * more triaging 10:04
r10493 | audreyt++ | * defaulting to $_ is now gone.
10:06 kanru joined
Juerd What is triaging? 10:12
audreyt "assign degrees of urgency" 10:14
10:14 Ymmv joined
audreyt in pugs context, mean either fixing the test, or mark it TODO, or implement the feature 10:14
audreyt finds 20min smoke cycle very pleasant to work with 10:15
svnbot6 r10494 | audreyt++ | * repair Log::Selective tests.
QtPlatypus It comes from the medical concept of triage, where if you have an overwelming number of victems and limited medical resorces you decide which people get allocated to what resorces. 10:28
audreyt tries a cocurrent smoke 10:29
svnbot6 r10495 | audreyt++ | * repair concurrent smoke. 10:30
r10496 | audreyt++ | * lcfirst.t: more lcfirst() => .lcfirst() fix.
10:33 Aankh|Clone joined 10:35 chris2 joined 10:36 elmex joined 10:42 trym_ joined
audreyt 13 minutes and 46 seconds wallclock with concurrent=4 10:44
svnbot6 r10497 | audreyt++ | * HTTP::Headers: "coerce:<as> is now infix:<as>"
audreyt down to 34 failed
10:48 neoesque joined
audreyt gaal: any chance of chglogging a bit in the next 48 hours? 10:48
10:53 trym__ joined
svnbot6 r10498 | audreyt++ | * implement list chomping. This makes chomp.t pass correctly. 10:53
r10499 | audreyt++ | * Getopt::Std - all tests now pass.
10:54 Aankh|Clone is now known as Aankhen`` 11:13 Aankh|Clone joined, trym_ joined 11:16 elmex joined 11:38 oylenshpeegul joined 11:40 andara joined 11:50 neoesque joined 11:52 iblechbot joined 12:00 bjoern_ joined
svnbot6 r10500 | scw++ | Pugs::Compiler::Rule & Pugs::Grammar::MiniPerl6 12:02
r10500 | scw++ | * default <ws> matches \s* when before or after non-words and \s+ otherwise
r10500 | scw++ | * MiniPerl6 grammar and compile_p6grammar.pl formatted better
r10501 | scw++ | Pugs::Grammar::MiniPerl6 more tests 12:05
audreyt down to 20 failed... 12:40
svnbot6 r10502 | audreyt++ | * chomp.t: add svn props and unTODO passing tests on list chomping 12:41
audreyt TimToady: is the ".-e.-f" ruling still in effect? 12:50
12:50 oylenshpeegul left
audreyt (a quick Syn grep didn't find that) 12:50
gaal audreyt: sure 12:59
13:00 Aankh|Clone is now known as Aankhen``
audreyt gaal++ 13:01
svnbot6 r10503 | gaal++ | correct authorship notice
13:06 turrepurre joined 13:21 justatheory joined 13:23 elmex joined 13:36 rashakil joined 13:45 froh-doh joined
gaal fglock, putter, audreyt and friends: I'm going to need your help chlogging misc/pX and iterator engine 13:46
svnbot6 r10504 | audreyt++ | * Horrible stopgap kluge to make 13:47
r10504 | audreyt++ | !-e "file"
r10504 | audreyt++ | parse, before we switch the Parser to OpTable. It involves
r10504 | audreyt++ | teaching unary - to recognize if it's being used as part of
r10504 | audreyt++ | a filetest operator.
r10504 | audreyt++ | * As part of this change, "-1000" and "+1000" are no longer literals,
r10504 | audreyt++ | but instead always calls &prefix:<-> and &prefix:<+> at runtime.
audreyt gaal: 'k
gaal but don't do it yet, I have uncommitted updates :)
audreyt k :) 13:48
svnbot6 r10505 | audreyt++ | * slightly speed up the ruleWs test after -e. 13:49
gaal one thing that should definitely happen in the upcoming hackathons is a precomp cache with compression, the current state is a little sad
audreyt nod.
svnbot6 r10506 | audreyt++ | * oops, thinko. 13:52
13:54 jsiracusa joined
svnbot6 r10507 | audreyt++ | * filetest.t: the "pugs" executable is not guaranteed to exist 13:58
gaal taking a break from chlogging, if someone wants to pick it up 14:12
svnbot6 r10508 | gaal++ | * ChangeLog updates up to 9800 excluding changes to misc/
audreyt gaal++ 14:14
svnbot6 r10509 | audreyt++ | * chmod.t: it's "chmod 0o777", not "chmod 777" 14:21
r10510 | audreyt++ | * Pugs.Parser.Number: Restore signed parsing for string->num 14:27
r10510 | audreyt++ | coercion; it's only on general parser that we delegate into
r10510 | audreyt++ | prefix:<-> and prefix:<+>.
r10511 | audreyt++ | * Pod::Event::Parser - repair after readline-autochomping. 14:39
14:42 DaGo joined
audreyt ...down to 12 failed 14:56
split(/(x)+/, "1xxx2") 15:04
should this return (1, "xxx", 2) or (1, "x", "x", "x", 2) or (1, "x", 2)? 15:05
(perl5 does the last one)
oozy as (x)+ shoudl be hungry I would expect to "eat" longest delimeter so the first case 15:09
I would expect that
audreyt that would be (x+)
oozy hm
audreyt but in perl6, (x)+ returns a list of submatches
of three elements, each of them "x"
oozy you are right, sorry 15:10
audreyt np :) 15:11
but if #2 case is chosen, split(/(x(y)z)/, "1xyz2") is weirdr 15:12
oozy in that case second one is what seems to be rights (as the Perl5 behaviour brings less information)
hm
audreyt unless we indeed output something like
(1, Match.new(...), 2) 15:13
that is one possible way out of this
actualy, it's as currently implemented, it's just the test that was confused, so never mind :) 15:14
oozy Perl5 returns "xyz", "y" when matching that RE against "1xyz2", also I like (1, "xyz", "y", 2) 15:16
as a possible result
Juerd If defaulting to $_ is removed completely, can we drop CALLER:: too? 15:18
I don't see any good reason to have it, anymore.
And I've always been very afraid of performance/optimization problems with the existence of CALLER:: 15:19
audreyt Juerd: CALLER is not limited to "env"
Juerd Does that matter?
audreyt so unless the caller dcelares with the env storage class
the caller frame is not extended with all lexicals
svnbot6 r10512 | audreyt++ | * split.t: split(/(capture)/, $string) should return the
r10512 | audreyt++ | Match object for the captures, not the stringified version.
Juerd But is using CALLER:: ever a good idea? 15:20
I think not. And if it's never a good idea, having the tool isn't needed.
audreyt $?CALLER::POSITION
$?CALLER::CLASS
Juerd I see
audreyt also, $! $/ and $_ are currently env 15:21
and thus is "special" in that the callee can change them if needed
otherwise, ~~ can't change $/
Juerd Hmm
audreyt and eval can't change $!
etc
svnbot6 r10513 | audreyt++ | * anon_block.t - whitespace-parsing fix 15:25
r10514 | audreyt++ | * array.t: fix test count
15:27 Limbic_Region joined 15:34 weinig|sleep joined 15:36 weinig|sleep is now known as weinig
svnbot6 r10515 | audreyt++ | * Kluge together the "*" term by defaulting to Inf for now. 15:36
r10516 | audreyt++ | * madgolfer.p6: chase whitespace parse changes 15:39
r10517 | audreyt++ | * golfex.t: chase readline-chomping changes. 15:42
r10518 | audreyt++ | * t/pil/metamodel/next.t: fix parsefail 15:45
15:47 vel joined
svnbot6 r10519 | audreyt++ | * ditto. 15:47
audreyt down to single-digit fails... 15:49
sadly it's midnight now and I should sleep
more releng tomorrow :) 15:50
audreyt waves &
15:55 nothingmuch joined
Limbic_Region yeah - audreyt is back 15:56
Juerd audreyt: Sleep well 15:57
16:00 soisoisoi joined 16:04 rashakil_ joined, aufrank joined 16:08 mako132_ joined, sri_ joined
svnbot6 r10520 | audreyt++ | * charset.t - fix bogus test involving erroneous "{" interpolation 16:38
16:41 trym_ joined
svnbot6 r10521 | audreyt++ | * Disallow self-inheritance at compile time: 16:59
r10521 | audreyt++ | class A is A {...} # bad
Limbic_Region [11:51] <audreyt> sadly it's midnight now and I should sleep 17:00
[13:01] <svnbot6> r10521 | audreyt++ | * Disallow self-inheritance at compile time:
How amazing it would be to have that kind of productivity ;-)
17:03 trym_ joined 17:04 cmarcelo joined
TimToady Just means the social brain shuts down before the technical. For most of us it's the other way around... 17:08
Limbic_Region oh, grats on being a Grampy btw 17:09
TimToady tanks. 17:10
Limbic_Region 's brain (both social and technical) have been on overload since his daughter was born 4 months ago but next week is vacation 17:12
TimToady Ya, kids change your life a lot more than getting married, I think. You get to pick your spouse--you don't get to pick your kids... 17:14
chris2 ooh, wow. gratulations. ;-) which daughter got a child?
TimToady Heidi
chris2 how old is she now? 17:15
TimToady 24
chris2 i see
svnbot6 r10522 | audreyt++ | * "require GLOBAL" and "require OUR" etc are now handled 17:18
r10522 | audreyt++ | as no-op instead of actually looking for GLOBAL.pm and OUR.pm.
r10523 | audreyt++ | * Now that env.t parses "use GLOBAL <%ENV>" correctly, change
r10523 | audreyt++ | the test to a mere :todo<bug> instead of eval+parsefail.
szbalint Shuts down long before...
:-)
Limbic_Region TimToady - the parsing method you suggested to pmichaud who subsequently suggested to fglock which simultaneously does top-down and bottom-up (I think) is called what?
TimToady The polite term is a "hybrid" :) 17:19
Limbic_Region I have been delving into language parsing myself recently and have come to find that single pass parsers suck
TimToady - any reference(s) you might be able to point me too
oh, fwiw - current pugs doesn't build on Win32 17:20
TimToady not really. I'm not scholarly that way. I just make it up as I go...
Limbic_Region yeah, that's what I thought
TimToady I had to rm all the .hi files to get mine to recompile.
Limbic_Region nmake realclean doesn't do that?
ok
TimToady apparently not. 17:21
maybe it just missed something
17:21 ludan joined
Limbic_Region TimToady - reaclean misses 9 .hi files 17:24
TimToady I would say that P6 is still a "single-pass" parser; I think of that as orthogonal to bu/td 17:27
Limbic_Region well, I forgot to add the :-) at the end of that statement 17:28
17:29 jsiracusa joined
svnbot6 r10524 | audreyt++ | * "make realclean" should clean up third-party .hi and .o 17:29
r10524 | audreyt++ | files too. TimToady++ for noticing this.
Limbic_Region doing things like precedence and associativity in a single pass parser that don't natively support them requires bending the parser to your will - that just seems counterintuitive to me
of course, I haven't read the Dragon Book yet so perhaps it is just a matter of being undereducated 17:30
TimToady I read the Dragon Book, and I would be hard pressed to tell you what I got out of it. It's rather theoretical. 17:31
rgs and a bit outdated 17:32
notably on code generation techniques
Limbic_Region well, my current self-learning current project is evaluating mathematical expressions. I told "use P::RD for that" (after handrolling my own) 17:33
TimToady To me, a "one-pass parser" (as opposed to a one-pass compiler) is one that does no backtracking.
both td and bu can do that...
Limbic_Region I discover that in order to do precedence, I need to add in stratification where I pass up the chain
ok, no problem
TimToady the difference is that td stores more info into the control structure rather than the data.
Limbic_Region then I find that it no longer properly parses equal precedence from left to right 17:34
oh, you need to eliminate left-recursion
ok, no problem - done
the resulting parse tree is so fugly that I need to write a parse tree parser to actually do the evaluation
definately not the feel of the right tool for the job to me
TimToady on the other hand, you do have to propagate semantic info up and down the trees, so the compiler is necessarily multiple pass in that sense. 17:35
17:35 shachaf joined
TimToady (though of course for some languages you can do both in one traversal of the tree) 17:35
Limbic_Region is building Pugs from scratch after manually deleting .hi files and svn uping 17:36
TimToady for contextually sensitive languages like Perl, though, the context pretty much has to propagate downward as a subsequent pass. Generally info can pass up the tree while you're building the parse tree.
that's how P5 does it, anyway. P5 has a third compiler "pass" that's the peephole optimizer. 17:37
Limbic_Region well - my new goal (not the one I originally set out for) is to learn how to do hybrid properly (not fragile hand-rolling) 17:38
TimToady but p5's parser is definitely not one-pass if you count the lexer.
rgs well, in theory perl 5's peephole optimiser isn't a compiler pass, since it doesn't change the semantic of the optree, it just optimises it 17:39
(in theory :)
17:39 neoesque joined
Limbic_Region speaking of p5's optimizer - it is b0rk 17:40
TimToady what is this "theory" thing you keep mentioning?
Limbic_Region a tied scalar that returns a coderef in FETCH ends up only executing the FETCH once
apparently it sees the coderef being returned and just replaces FETCH with that 17:41
www.perlmonks.org/?node_id=553184 # for details
rgs yes, saw that today on the P5P mailing list
Limbic_Region came up with a nice work around but apparently it doesn't work on 5.6.1
rgs Nicholas said: unfixable unless we completely change how magic is handled :) 17:42
TimToady sounds like something that was post-me.
Limbic_Region oh, wow
well, at least there is a work-around for current versions 17:43
TimToady I don't remember installing such an optimization. But if it's just the magic system, it could certainly be my fault, at least partly.
rgs Limbic_Region: www.xray.mpe.mpg.de/mailing-lists/p...00031.html
Limbic_Region in the case of the work around, just bundle the body of the desired FETCH routine in an anonymous code ref and return that
where the last statement in the anonymous code ref is the dereferencing of the original coderef with the passed in arguments 17:44
thanks rgs - I don't normally follow p5p 17:47
TimToady yes, good link
Limbic_Region doubts his workaround (versions aside) would universally work so it is unfortunate it is not fixable 17:48
TimToady I suspect the answer to Nick's last wondering is "Captures". 17:50
rgs I don't know parrot enough to answer that
TimToady I doubt parrot has Captures yet.
It's just a p6 concept, so far. 17:51
in fact, not even pugs has Captures yet.
rgs ah :)
Limbic_Region has got back into Parrot after a 1.5 year respite and has found it a very different animal
TimToady they're just rich, lazy references, but they might just solve the problem here.
different how? 17:52
Limbic_Region different in the embracement of p5 for one 17:54
17:54 rindolf joined
rindolf Hi all. 17:54
Limbic_Region previously, p5 was only to be used when absolutely necessary and then only core
TimToady howdy 17:55
Limbic_Region the code looks cleaner to me too but that might be that my C skills have improved in the last 1.5 years
the executable is no longer bloated (10+ MB)
rindolf Hi TimToady
TimToady: I'm learning Smalltalk. Wanna see my (working!) Hanoi-towers implementation? 17:56
Limbic_Region macros look different to me too
TimToady sure
rindolf TimToady: OK. Let me nopaste it.
Limbic_Region guess that's about it for my few day foray into it
pasteling "rindolf" at 88.152.115.112 pasted "Hanoi Towers implementation for GNU Smalltalk. Comments are welcome. Flame away!" (71 lines, 1.8K) at sial.org/pbot/17562 17:57
rgs speaking about smalltalk, did anyone played with seaside?
rindolf TimToady: sial.org/pbot/17562
rgs: what's seaside? 17:58
rgs rindolf: seaside.st/ Seaside is a framework for developing sophisticated web applications in Smalltalk.
using continuations might be very interesting for web applications
rindolf rgs: is it the one with the continuations?
rgs yes. (although I think jifty has something similar) 17:59
rindolf rgs: OK.
17:59 andara joined
Limbic_Region The catalyst breakoff (can't remember what its codename is) is going to be all about continuations 17:59
rgs Limbic_Region: mojo 18:00
rindolf Limbic_Region: Mojo it's called.
andara ?eval (7,6) -> ($x,$y) {$x*$y}
18:00 evalbot_10484 is now known as evalbot_10524
evalbot_10524 Error: unexpected ">" or "-" expecting comment, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input 18:00
Limbic_Region right - mojo 18:01
TimToady Smalltalk looks like a derivative of Python and Ruby. :)
rgs sounds like a name you should scream
TimToady mojojojojojo
rindolf TimToady: Smalltalk has a very unconventional syntax in today's standards. 18:02
Limbic_Region TimToady - it looks like the .hi deletion was the fix
rindolf TimToady: statements end with "." instead of ";".
TimToady yes, audreyt sleep-fixed it.
andara ?eval 5 -> $x { $x*$x }
TimToady and COBOL.
evalbot_10524 Error: unexpected ">" or "-" expecting comment, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
rindolf TimToady: ";" is for separating methods to the same object - sort of like chaining.
TimToady: blocks are delimited by "["..."]" instead of "{"..."}". 18:03
TimToady ?eval for 5 -> $x { say $x*$x }
evalbot_10524 OUTPUT[25 ] undef
svnbot6 r10525 | audreyt++ | * chmod.t: running this test as root can accidentally cause
r10525 | audreyt++ | two fails due to -r always working despite a 0o000 permission.
r10525 | audreyt++ | Skip those tests if $*EUID is 0.
TimToady yes, and they're all closures. so Smalltalk must be derived from Perl 6 as well. :) 18:04
Limbic_Region learned enough COBOL to help his father pass a course he was taking and was scarred for life 18:05
how long should it take to generate the precompiled prelude
it has been there for a couple of minutes
TimToady how much memory do you have?
and is your disk going blinky-blinky? 18:06
Limbic_Region 512MB - it is done now
never had a swapping issue before (on this machine)
TimToady I find that 512 is marginal.
rindolf Limbic_Region: I have 512 MB and I suspect it's no longer enough.
Limbic_Region wow
well, this machine is 6 years old
rindolf Limbic_Region: at least not if I want to run a big Java app on top of KDE. 18:07
Limbic_Region I bought it the day the 1.5ghz xeon processors came out and way overpaid for it
rindolf Which luckily I hardly ever need to do.
Limbic_Region pugs successfully built - 18:08
Limbic_Region hugs TimToady and audreyt
18:08 evalbot_10524 is now known as evalbot_10525
Limbic_Region ok - I am off to spend the rest of the day with the family 18:08
TTFN
TimToady ciao!
18:09 trym_ joined
TimToady off to take a walk--have been severely underexercised while driving to Seattle and holding a baby... 18:10
&
rindolf TimToady: bye.
andara ?eval for (5) -> $x { say $x*$x } 18:11
evalbot_10525 OUTPUT[25 ] undef
18:15 andara joined
andara ?eval for 5 -> $n { for (sub ($n,$f) { return $n*$f($n-1) }) -> $f { say $f($n,$f) }}; 18:16
evalbot_10525 Error: Undeclared variable: "$f" 18:17
18:21 m0d23452 joined, m0d23452 left
andara ?eval for 5 -> $n { for (sub ($n_,$f_) { return $n_*$f_($n_-1) }) -> $f { say $f($n,$f) }}; 18:22
evalbot_10525 Error: Undeclared variable: "$f_"
18:38 penk joined 18:44 DaGo joined
elmex do we have the 'what was the big deal' time yet? 18:46
18:47 aufrank joined 18:51 soisoisoi joined 19:05 aufrank left 19:15 penk joined 19:21 andara joined
andara ?eval my $n=5;my $f=sub ($n_,$f_) { return $n_*$f_($n_-1) };say $f($n); 19:25
evalbot_10525 Error: Undeclared variable: "$f_"
andara my $n=5;my $f=sub ($n_,$f_) { return $n_*$f_($n_-1) };say $f($n,$f); 19:26
?eval my $n=5;my $f=sub ($n_,$f_) { return $n_*$f_($n_-1) };say $f($n,$f); 19:27
evalbot_10525 Error: Undeclared variable: "$f_"
andara ?eval my $n=5;my $f=sub ($n_) { return $n_*($n_-1) };say $f($n); 19:28
evalbot_10525 OUTPUT[20 ] Bool::True
19:28 Ymmv joined
andara ?eval my $n=5;my $f=sub ($n_,$f_) { return $n_*($f_-1) };say $f($n,$n); 19:29
evalbot_10525 OUTPUT[20 ] Bool::True
andara ?eval my $n=5;sub $f($n) {if ($n<2) {return 1} else {return $n*$f($n-1)}};say $f($n); 19:32
evalbot_10525 Error: unexpected "$" expecting comment, subroutine parameters, trait or block
andara ?eval my $n=5;sub f($n) {if ($n<2) {return 1} else {return $n*f($n-1)}};say f($n); 19:33
evalbot_10525 OUTPUT[120 ] Bool::True
20:00 elmex joined 20:11 SamB joined 20:14 schneiker joined 20:16 justatheory joined 20:21 iblechbot joined 20:24 penk joined
schneiker Any suggestions for what would be reasonable to ask for, 20:25
given current p6 features and performance. regarding specs for:
(www.nntp.perl.org/group/perl.perl6.users/217),
"$1,000 Grant (was: prize) for Perl 6 Wiki written in Perl 6".
Juerd Is my previous utterance re this detailed enough, or do you want more details? 20:31
(Summary => { features => <diffs rollback mediawiki-syntax>, performance => 'max. 5 seconds per hit' }) 20:33
And something that I had in mind today: automatically evaluate Perl 6 code and list results 20:34
Like evalbot does here. This would need to be cached.
schneiker It's not clear to me what's *presently* feasible.... 20:35
Juerd I think that these things are presently feasible.
Just don't expect too much modularity to be possible just yet, because performance suffers from that
So some dirty programming may be needed.
And I think it's perfectly acceptable to run command line tools (svk) and Perl 5 modules, as long as they're pre-existing. 20:36
Because as someone else said on p6u, I think interoperability is a major feature we shouldn't be afraid to show off.
schneiker I totally agree. 20:37
Juerd I think it may be nice to require that the project include a (seperable) web server written in Perl 6) 20:38
s/\)$//
s/seperable/separable/
That's certainly doable, and not much work, and is likely to perform better than forking once per hit, without depending on fragile C bindings. 20:39
s/forking/execve'ing/ 20:40
Forking's cheap :)
And probably needed anyway
Am I typing too much? :)
schneiker Re mediawiki-syntax, (www.nntp.perl.org/group/perl.perl6.users/225) just showed up. 20:41
prefiks generating and using static pages will be nice
schneiker I'm not familiar with it though.
Juerd I'm familiar with several wiki syntaxes, but don't want to discuss it yet again. 20:44
Indeed ''italic'' and '''bold''' are not intuitive. But they are easy to learn, and don't interfere much. 20:45
schneiker Typing's OK. Tomorrow I hope to do initial try at specs. Unfortunately, I'm not familiar with wikis,
latest pugs, don't know how well p5 access works, and so on.
As mentioned in (www.nntp.perl.org/group/perl.perl6.users/217),
I want to make it reasonably easy for someone to get something minimally useful done soon. 20:46
Juerd /italic/ and *bold* are nice, but suck when you have these characters for other purposes.
But if I say that on the mailing list, there'll be discussion once again, and I'm not prepared to spend that much time on this.
cmarcelo Juerd: is it too hard to make support for multiple syntax, having a set of possible syntaxes, a default one and choose syntax per page if needed?
Juerd cmarcelo: Yes. 20:47
cmarcelo: 1. There has to be a uniform syntax, if people want to collaborate. People in this community don't just edit a single page, but continuously work together. They shouldn't have to context-switch all the time.
cmarcelo: 2. It's hard to implement a single syntax correctly, let alone multiple.
cmarcelo: 3. These formats can't be converted into eachother without loss. 20:48
schneiker prefiks: Isn't that "standard"? (I'm don't know how most wikis are done.)
Juerd schneiker: The konstrukt syntax doesn't work because it has no tables.
schneiker: Sort of. It's common to cache. 20:49
schneiker: It's uncommon (and wrong) to store the html-ified version as the primary data source, because then you can't edit it anymore :)
It's possible, but uncommon, to generate static context and then serve that statically. 20:50
wikis prefer cute URL syntaxes :) 20:51
But you could configure the webserver (especially if you wrote it yourself) to default to text/html instead of text/plain or application/octet-stream
cmarcelo Juerd: i see...
schneiker Juerd: No edit button for that, huh? 20:52
Can you suggest a good mediawiki example (URL if possible) to look at later?
Juerd Markdown also doesn't have tables. 20:53
schneiker: Any wikipedia page? :)
I don't understand the edit button remark
schneiker OK! Sold.
Juerd I'm off to watch some tv 20:55
Hands hurt again
afk
schneiker Juerd: Any specifics for webserver?
Juerd Raw CGI is out of the question because of performance 20:58
There has to be some kind of persistent Perl 6 interpreter; and if you have to write something for that, you may as well write an entire http server in Perl 6. 20:59
Do include that pages have to be cacheable, so a front-end proxy can be used
"Entire http server" isn't much more than: some daemon that responds to http requests. 21:00
It doesn't have to be apache compatible or anything :)
There is already an http server in the examples/ directory of the pugs repository. 21:01
It can be used as a basis, or source of inspiration
I really need to watch some tv now :)
afk
schneiker Thanks. 21:02
If anyone else has any comments or suggestions, I'll be checking the logs later. 21:09
afk 2
21:09 schneiker left
svnbot6 r10526 | cmarcelo++ | * implementation of "BitSet a". seems that using StablePtrs to index wont work because 22:04
r10526 | cmarcelo++ | GHC doesn't always return the same StablePtr for the same data.
22:06 DaGo joined
cmarcelo audreyt: in "BitSet a" the idea was using StablePtrs to index Judy1 array, but I just checked that newStablePtr doesn't return the same value for same pointer if called twice. I get this, for example, in testSetList, where I set [1..10] in the bitset (newStablePtr 10 happens) and try to get it (newStablePtr happens again) and look for different index.. The strange thing is, when i setList [1,2,3,4,5,6,7,8,10], it works... anyway, as G 22:06
HC doesnt guarantee consistent StablePtr'ing, using it as Index isn't going to work, right?
audreyt: details in Judy/BitSet2.hs and tests/TestBS2.hs 22:08
23:02 mako132_ joined 23:06 bjoern_ joined 23:09 kanru joined 23:15 Khisanth joined 23:36 bpederse_ joined