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
|