Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-06-03

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo