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.
svnbot6 r10591 | audreyt++ | * Upgrade fps yet again to synchronize with the eventual GHC 6.6. 02:23
audreyt TimToady: junctive? 03:10
$a[1|2] = func(); 03:11
not even sure what it means, so not going to SIMPLE it now
audreyt TimToady: also 04:20
f(1, 2 and 3, 4)
this is one arg call for &f or three? 04:21
pugs has it as three, based on the observation that within a funcall bracket, "," drops to most loose prec
but perl5 has it as one
is pugs incorrect? 04:22
audreyt TimToady: also 05:14
$x = f(); # scalar
my $x = f(); # scalar
my ($x) = f(); # scalar? list?
I'm taking the "list" interpretation
obra audreyt: could you be bribed to make your shiny new jifty testing stuff jifty-core "soon"? 05:32
audreyt if "soon" means when I get to Boston, that neeeds no bribing 05:33
clkao audreyt: ;) 05:34
sooner will be better
audreyt: btw, i wrote a callgraph analyseer 05:35
audreyt ooh nice 05:36
I'm working on variable hoisting at this moment... will be back in ~15min 05:39
yay, variables hoisted. 05:46
?eval my $x = 3 unless $x.defined; 05:47
evalbot_10591 Error: unexpected "u" expecting comment, operator, ";" or end of input 05:47
audreyt my $x; for 1..10 { $x++; say ($x ::= 1) } 06:06
should this say 2, then 3, all the way to 11?
svnbot6 r10592 | audreyt++ | * Prelude.pm: "our $qualified::name" is invalid syntax. 06:31
xerox audreyt! 07:14
audreyt yo
xerox Did you see the message I left you in lambdabot?
audreyt yes; I updated the link 07:15
was a typo.
xerox Thank you very very much.
audreyt hackage.haskell.org/trac/ghc/wiki/X86OSXGhc
no prob. let me know if it works
xerox Will do.
Question, `make install' installs everything under a simple-to-clean-up directory under /usr/local ? 07:16
(I never installed GHC from its makefile before.)
audreyt yes.
/usr/local/lib/ghc-* and /usr/local/bin/*ghc*
that's all
xerox Perfect!
I wonder if Wolfgang will eventually produce an universal GHC.app... 07:17
svnbot6 r10593 | audreyt++ | * fps: prefix the C functions with fps_ to avoid name clash.
r10594 | audreyt++ | * FindBin.pm: Remove the "our $qualified::name" syntax. 07:20
r10595 | audreyt++ | * Prelude.pm: Remove the now-deprecated "my ($x, undef) = f()" 07:23
r10595 | audreyt++ | syntax; simply omitting the rightmost undef in this case will do.
audreyt okay, I'm ready to push my local branch :) 07:33
expect massive, massive breakage; also rm blib6/lib/*.yml before building.
svnbot6 r10596 | audreyt++ | * Here begins the changes needed to make TimToady++'s new 07:38
r10596 | audreyt++ | t/operators/assign.t to pass.
r10596 | audreyt++ | * First off, assignment is parsed differently:
r10596 | audreyt++ | $x = 1, 2; # ($x = 1), 2
r10596 | audreyt++ | @x = 1, 2; # @x = (1, 2)
r10596 | audreyt++ | this relies on the "isScalarLValue" function to check
r10596 | audreyt++ | "SIMPLE"ness of an Exp. See S03 for details.
r10597 | audreyt++ | * Next, we adjust Eval.Var.inferExpCxt to use this static
r10597 | audreyt++ | inferencing engine, instead of the dynamic one as before.
r10598 | audreyt++ | * We then remove the dated infer calls from Pugs.Eval.
r10599 | audreyt++ | * Now we look at the parser. To parse the RHS of "=" in a 07:41
r10599 | audreyt++ | way that depends on the LHS, we introduce a new internal
r10599 | audreyt++ | fixity: "DependentPostfix".
r10599 | audreyt++ | * The idea is that the "= LISTEXPR" itself is parsed as a
r10599 | audreyt++ | single postfix, and therefore can transcend is current
r10599 | audreyt++ | "tight op" prec level.
r10600 | audreyt++ | * Armed with DependentPostfix, we rewrite the two "strange" 07:45
r10600 | audreyt++ | rightward infix syntax operators to use it.
r10600 | audreyt++ | * "=" is changed to test for LHS simpleness, and reparse
r10600 | audreyt++ | with list expressions if it's complex. if it's simple,
r10600 | audreyt++ | it retains its original prec and fixity (Infix).
r10600 | audreyt++ | * "::=" is changed to unsafely evaluate itself as ":="
r10600 | audreyt++ | at parse time, then simply return the LHS to the runtime
r10600 | audreyt++ | AST tree. This means the following code now works:
r10600 | audreyt++ | (my $y ::= 1) := 4;
xerox ^- scary code 07:51
svnbot6 r10601 | audreyt++ | * Now we have ($x = 1, 2) parsing correctly, we still has to fix
r10601 | audreyt++ | my $x = 1, 2;
r10601 | audreyt++ | to parse the same way. Pugs used to only allow variable
r10601 | audreyt++ | declarations to appear at statement level, so the statement
r10601 | audreyt++ | above can't be parsed correctly.
r10601 | audreyt++ | * To allow this, we must allow declarations to occur whenever
r10601 | audreyt++ | a variable may occur, collect those declarations to the
r10601 | audreyt++ | current innermose block, then hoist them all:
r10601 | audreyt++ | {
r10601 | audreyt++ | say (my $x + my $x); # 0
r10601 | audreyt++ | }
r10601 | audreyt++ | note that duplicate declarations is okay.
r10601 | audreyt++ | * The function "addBlockPad" in the RuleParser monad now
r10601 | audreyt++ | does exactly this, via a new RuleState entry that remembers
r10601 | audreyt++ | the pad to be allocated for each storage class.
r10601 | audreyt++ | * Also change "localEnv" to remove the new-pad info on scope exit.
r10602 | audreyt++ | * Adjust Parser.Program and Parser.Util for the new parser state.
r10603 | audreyt++ | * Now we are ready to remove the statement-level ruleVarDeclaration 07:54
r10603 | audreyt++ | and change it to the expression-level ruleVarDecl in Parser.hs.
r10603 | audreyt++ | * This is a bit complicated as S03 "Declarator" specifies that
r10603 | audreyt++ | declarators takes the Sigs syntax, and we need to implement this:
r10603 | audreyt++ | my ($x!) := 1;
r10603 | audreyt++ | * However, for the parens-less form, the modifiers and defaulting
r10603 | audreyt++ | permissions introduces ambiguities:
r10603 | audreyt++ | my $x? = 'default' = 3;
r10603 | audreyt++ | so we simply disallow them with the "FormalsSimple" flag.
r10603 | audreyt++ | The "FormalsComplex" flag specifies the full Sigs syntax as before.
r10604 | audreyt++ | * Prim.hs: "die" is now strict in evaluating its operand.
audreyt 11302 test cases: 11120 ok, 182 failed, 1595 todo, 1179 skipped and 61 unexpectedly succeeded 07:55
anyone have a minute or so to unTODO the 61 unexpected successes? 07:56
svnbot6 r10605 | audreyt++ | * Pugs.Rule: remove unused import.
r10606 | audreyt++ | * Pugs.AST.Internals: finally, bump the CompUnit number
r10606 | audreyt++ | to indicate that Prelude.pm needs to be reparsed.
r10606 | audreyt++ | * The changed above incidentally fixed the JavaScript backend through
r10606 | audreyt++ | no efforts of my own...
xerox audreyt - What font do you use in the terminal? :) 08:01
audreyt Consolas
xerox Uhm. 08:03
.exe download... nah? 08:04
audreyt should be a .zip somewhere 08:07
svnbot6 r10607 | audreyt++ | * Disambiguate "=>", "==" and "=:=" from rightward listop=.
xerox Ah-ha. 08:09
svnbot6 r10608 | audreyt++ | * fix parsefails in tests.
r10609 | audreyt++ | * remove unused ruleVarDeclaration from Parser.
xerox It does show up nicely there? Looks kinda awful here O_o 08:13
audreyt did you turn up antialias?
xerox audreyt++ 08:14
audreyt :)
xerox Nice, nice, 14pt.
audreyt 24pt here ;) 08:15
svnbot6 r10610 | audreyt++ | * Parse "my $!x" correctly -- it's after all just "my $x".
xerox haha 08:17
Really?
xerox audreyt - I demand a screenshot. 08:18
(;
audreyt I'm seriously nearsighted... 08:20
xerox Well, big good-looking fonts are appealing. 08:21
Since you happen to know everything... 08:24
Do you know how to enable `libreadline'-like movements in the Terminal? In particular CTRL+arrows to move between words, (or Alt, or whatever.)
Here CTRL+<- prints 'D'... very useful. 08:25
audreyt worksforme here. 08:26
xerox Argh!
audreyt ...but only in irssi, heh. 08:27
xerox haha
I need it in GHCi, obviously :)
^W ^A ^E work...
If only there was something to move between words :-| 08:28
spinclad .oO{ r10601: s/innermose/innermoose/ } 08:30
audreyt down to 144 fail
spinclad: got some time to chase the yellow boxes?
m19s28.vlinux.de/iblech/stuff/pugs-...0dc83.html
xerox innermost :) 08:31
audreyt remove the :todo and force_toto on the ywllow boxes...
I'll bbiab
spinclad as long as i don't have to run them... slow box here, smoke takes hours 08:32
xerox hehe, ask for an account on audrey's fast-spinning-macintel ;)
spinclad or refresh my feather account 08:33
audreyt you don't have to run them :)
hovering on the box gives you line #
spinclad didn't think so; i'll leave verifying them to a later smoke 08:34
xerox Is there a reason why is it called smoke? 08:35
spinclad audreyt: will you be nibbling on these too? should we nibble from opposite ends?
audreyt spinclad: I'll nibble redboxes instead
so however you nibble it's fine
spinclad good
smoke test: run it and see what gives off smoke
audreyt en.wikipedia.org/wiki/Smoke_test
xerox Gee. 08:36
audreyt "Non-toxic smoke is used to find leaks in plumbing and sanitary sewer systems. Artificially created smoke is forced into the pipe or container. Plumes of smoke form where there are defects. It is particularly useful where completely sealing the system is not practical such as ventilated sanitary sewer systems."
xerox laughs
Makes sense :-)
spinclad see also 'magic smoke' in the hackers' dictionary 08:37
audreyt dinner, bbiab... 08:38
spinclad and 'smoke test' itself there 08:39
xerox A substance trapped inside IC packages that enables them to function (also called `blue smoke'; this is similar to the archaic `phlogiston' hypothesis about combustion). Its existence is demonstrated by what happens when a chip burns up -- the magic smoke gets let out, so it doesn't work any more. See smoke test, let the smoke out.
spinclad smoke test: ... There is an interesting semi-parallel to this term among typographers and printers: When new typefaces are being punch-cut by hand, a /smoke test/ (hold the letter in candle smoke, then press it onto paper) is used to check out new dies. 08:43
spinclad invokes his innermoose 08:47
cognominal maxao.free.fr/xcode-plugin-interface/ # come on there is a plugin for ocaml, there should be one for haskell 09:16
cognominal is learning his way thru his shiny macbook
too bad, UPS come Monday to ship it to Apple to get it fixed 09:17
xerox cognominal - Maybe HOC guys have got something! 09:18
cognominal HOC?
xerox Haskell ObjC 09:19
cognominal camelbones is nice 09:21
xerox What's that?
By the way, it seems like Apple sold a HUGE quantity of macintels. 09:22
cognominal - I am also interested in the matter too, by the way. 09:28
integral camelbones is the objC<->Perl bridge 09:30
stephanepayrard_ I thought that was a thermal sensor problem but I installed a widget who gives me 41C as temperature 09:35
svnbot6 r10611 | spinclad++ | JudyHS: silence a few warnings 09:49
spinclad done 10:02
svnbot6 r10612 | spinclad++ | - untodo 63 passing todo's 10:02
spinclad and now to bed... bye, all & 10:05
audreyt spinclad++ 10:09
QtPlatypus Are junctions/superpositions related to Superposition calculis or is it just a co-incidence. 12:49
xerox What are .pm files? 13:27
buetow Perl modules. 13:33
svnbot6 r10613 | audreyt++ | * FindBin.pm: use "our" instead of silly aliasing 13:36
r10614 | audreyt++ | * ref.t: unbreak the test; aliasing methods now work. 13:39
svnbot6 r10615 | audreyt++ | * "Cheap and cheerful" prototype objects! 14:22
r10615 | audreyt++ | VType (constructed by ::Foo and friends) is now a prototype
r10615 | audreyt++ | of the type it represents; it's considered undefined, and is
r10615 | audreyt++ | indistinguishable from "undef" except on method calls.
r10616 | audreyt++ | * Prim: VType is considered undef
r10617 | audreyt++ | * Support for prototype objects in typed declarators: 14:31
r10617 | audreyt++ | my Moose $x;
r10617 | audreyt++ | $x .= new; # this now works
audreyt pugs... is now a quite different animal compared with yesterday 14:32
audreyt wants another 10mins for the new breakage smoke report 14:33
s/want/wait/
wolverian whoo!
audreyt++
buetow ++audreyt; :-)
audreyt the plan is still to fix those breakage and roll a relesae instead of continuing with capturizing :) 14:34
TimToady++ # committing t/operators/assign.t
without that, it's likely that release would have already happened by now...
FurnaceBoy audreyt += 7 14:46
b_jonas quite a different animal? it's now a Moose? 14:49
audreyt maybe it's many Moose.. 14:51
svnbot6 r10618 | audreyt++ | * Prototype objects stringifies to empty. I think. 14:58
r10619 | audreyt++ | * random cleanup to remove unused imports
svnbot6 r10620 | audreyt++ | * DateTime: fix misuse of BUILD where it means new. 15:34
svnbot6 r10621 | audreyt++ | * todo Date test. 15:49
svnbot6 r10622 | audreyt++ | * unTODO 15 more passing subtests. 16:16
audreyt TimToady: should ::Int stringifiy stringify to "Int" or "" ? 16:22
primciple of least surprise says 'Int'
svnbot6 r10623 | audreyt++ | * Principle of least surprise: ::Int stringifies to "Int", not "". 16:25
dazjorz Hey guys 16:26
audreyt greetings.
svnbot6 r10624 | audreyt++ | * However, fix the tests so they don't depend on the ::Int->"Int" behaviour.
dazjorz omg perl 6 is freaky. 16:34
from what I've seen of it, that is. 16:40
Not much, I admit, but enough for my opinion.
audreyt perl in general is freaky... 16:42
usefully freaky, I think, mostly. 16:43
dazjorz true 16:45
but when you're used to Perl 5, Perl 6 is like... Seeing a spider making a web, when you're used to seeing a ... Well, whatever.
I mean, it's freaky.
audreyt journal up; good night :) 16:52
wolverian sleep well! 16:53
obra night 16:54
dazjorz gnight 16:55
svnbot6 r10625 | audreyt++ | * Net::IRC: change all 17:03
r10625 | audreyt++ | %channels{normalize($chan)}<topic> = $topic;
r10625 | audreyt++ | to
r10625 | audreyt++ | %channels{~normalize($chan)}<topic> = $topic;
r10625 | audreyt++ | lest it tries to dereference an one-elem slice as a hash,
r10625 | audreyt++ | which is currently a fatal error in Pugs. Not sure if it
r10625 | audreyt++ | should be that way...
r10626 | audreyt++ | * "xor" is loose precedence so negated_smartmatch was confused with: 17:04
r10626 | audreyt++ | my $x = ... xor ...;
r10626 | audreyt++ | rewrite to use:
r10626 | audreyt++ | my $x = (... xor ...);
audreyt ?eval my Int $a = $a.ref.ref.ref unless $a.defined; 17:07
evalbot_10625 \::Int
svnbot6 r10627 | audreyt++ | * indirect_notation - fix scopign 17:07
audreyt good, evalbot is working again. I can rest in peace. :) &
shlomif Hi all. 18:38
xerox Hi you.
shlomif xerox: hi hi.
xerox: what's up?
dazjorz ping. 18:46
shlomif Hi dazjorz 18:53
dazjorz Hi shlomif :)
Although I expect people to answer 'pong', or in reality 'abcdef', to my pings. :) 18:54
qwr can pugs be told, that its source is for example iso-8859-1 encoded? 21:15
audreyt qwr: not yet; it needs support for =encoding pragma I think 23:51