Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2005-09-22

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:07 lao has joined #perl6
00:20 stevan putter: pong
00:21 buu stevan: Explain that --
00:21 stevan buu: explain what?
00:21 buu stevan: \-1.0 ?
00:21 stevan buu: I have no idea
00:22 buu =[
00:22 frey_ has quit IRC (Read error: 110 (Connection timed out))
00:22 stevan ?eval my $a = 0; $a--;
00:22 evalbot_7085 0
00:22 stevan ?eval my $a = 2; $a--;
00:22 evalbot_7085 2
00:22 stevan ?eval my $a = 2; --$a;
00:22 evalbot_7085 1
00:23 stevan buu: the difference in your results can probably be explained by evaluation order
00:23 stevan as for the why you get \-1.0 I have no idea
00:23 buu stevan: Right, the first one was a mistake.
00:24 stevan buu: I am not sure what the state of type coercien is in Pugs
00:24 stevan ?eval my $a = 2; --$a; $a
00:24 evalbot_7085 \1
00:24 stevan ?eval my $a = "a"; --$a; $a
00:24 evalbot_7085 \-1.0
00:24 stevan ?eval my $a = "a"; --$a;
00:24 evalbot_7085 -1.0
00:24 stevan ?eval my $a = "z"; --$a;
00:24 evalbot_7085 -1.0
00:25 stevan hard to say, I am not familiar with the internals much these days
00:31 pasteling has quit IRC (Remote closed the connection)
00:32 pasteling has joined #perl6
00:33 putter stevan: pong?
00:33 stevan hey putter
00:33 putter hi stevan
00:34 stevan I am looking over Perl6::(Value&Contanier) as well as PIL-Run
00:34 putter how much of mm2 works now, compared with mm1?
00:34 stevan well, most of it I think
00:34 stevan there are some changes
00:34 putter questions welcome.  the code has gotten a bit crufty.
00:34 stevan looks like most of those will effect Perl6::(Value & Container) more though
00:35 stevan putter: to be honest, I dont know enough about PIL and all that to really grok what is going on in PIL-Run
00:35 putter I've been trying to keep the P6::V/C interface concentrated in ApiX, but it's leaked out a bit.
00:36 putter well, let's see...
00:37 putter lib6/Test.pm is a simple version of Test, tuned to what is/isnt working in pilrun at any moment.  the regular Test.pm is just to complex.
00:37 evalbot_7085 has quit IRC (Remote closed the connection)
00:37 evalbot_7086 has joined #perl6
00:37 putter lib6/P5Runtime/PrimP6.pm is just some primitives, implemented in regular p6.   the equivalent of pugs's src/perl6/Prelude.pm
00:37 svnbot6 r7086 | putter++ | PIL/Run/ApiX.pm: implemented parameter default value.  Param->new() is now called with invocant/lvalue/lazy/named/writable flags, though Code.pm does not yet implement them.
00:38 putter crude_repl.pl is the "main" program.  but is mostly just a read-eval-print-loop, and some command line argument handling.
00:39 putter lib/PIL/Run/MainX.pm require/use's everything
00:39 stevan EvalX?
00:39 stevan it looks like it is doing the PIL -> PIL-Run conversions
00:41 putter lib/PIL/Run/Type/Macro.pm and Object.pm are leftovers from when P6::V/C weren't used.  They still dont have a Macro, but one could/should(?) create a Macro is Sub and finish throwing away lib/PIL/Run/Type/.
00:42 putter lib/PIL/Run/PrimP5.pm is some primitives writen in mutant p6/p5.  the sub arguments are p6, the bodies are p5.
00:42 putter it's the equivalent of Prim.hs
00:43 putter lib/PIL/Run/ApiX.pm provides a bunch of p6_mumble functions, intended to (mostly?) wrap the runtime and mm.  to keep design decisions localized, simplify swapping them, etc.
00:44 putter lib/PIL/Run/Root/  is nothing.  well, its currently the root of the P6 namespace in p5 space.  but no files go there.
00:45 joepurl has joined #perl6
00:45 stevan yup I saw that one
00:45 stevan ok, well I think mm2.0 might be ready for experimentation
00:46 stevan I am not sure it has all the features from 1.0 yet
00:46 stevan and some things have changed
00:46 stevan I was going to try and convert chromatic's Test::Builde to MM2.0 and see what happens
00:47 putter lib/PIL/Run/EvalX.pm has the PIL node classes, which just provide ->expand() which yields p5 code.  and a couple of functions at the bottom to take p6, call pugs, get pil, eval it, expand() it, and eval the p5.  There is some initialization cruft at the very bottom, which should probably go elsewhere.
00:48 putter and just to wrap up, lib/PIL/Run/Match.pm is the Match objects returned by regexp matching.  It probably belongs in P6::Value.
00:49 putter ok...
00:49 stevan so what is class support like in PIL
00:49 stevan IIRC is wasnt that great
00:50 putter no...
00:50 putter the key thing is you find out about classes incrementally.  an accessor method shows up.  another method.  at some point you see a...
00:51 stevan ok, well the MM can support that
00:52 stevan just dont use the class 'Foo' => { } stuff
00:52 putter &Class::_create('C')  or Role::_create or whatever.  A hack to tell the runtime its a Role/Class/Package/etc.
00:52 stevan and build the classes manually
00:52 stevan One major difference is that I dont use p5 symbol tables for classes
00:52 putter though one could grovel over the pil looking for Mumble::_create('Foo') flags if one needed them ahead of time.
00:52 stevan I am not sure how much of an issue that might be
00:54 putter hmm... currently name lookup works like
00:54 stevan it doesnt
00:54 stevan classes are just scalars
00:54 stevan name lookup can be added
00:55 putter (defined($scalar_xxx)?$scalar_xxx:p6_lookup('scalar_xxx',1)||do{warn "autovivifying scalar_xxx\n" if $main::global_debug;$scalar_xxx = Scalar->new()})
00:56 putter Ie, try a lexical $scalar_xxx or $array_xxx or etc, and if there isnt one, call a package-local-sub p6_lookup(), which then crawls up the package tree looking for it.
00:56 putter and in this case, autovivifies it if it isnt found
00:57 stevan ok
00:58 putter so if each class has some package associated with it (which the p6_mangle()r can rename vars to), p6_lookup could hook into the mm.  either with the mm providing lookup, or providing a list of package names to check.
00:59 stevan mm2.0 implements it's own ::Package
00:59 putter ie, in A::B::C, $x is searched first in C, then B, then A, then *.
01:00 putter so if the mm says ['A::B::C','A::B','A','*'], or perhaps their mangled forms, then p6_lookup could take it from there.
01:01 stevan I will need to think about this
01:01 stevan the MM2.0 really tries not to use any p5 packages at all
01:01 stevan all package use is in chaos.pl
01:02 putter though given $X::y , $y has to be searched for in A::B::C::X, A::B::X , "A::X", "X"  the last time I checked (a while ago)
01:02 stevan it is mostly to either 1) tag types so I can check them with blessed() and 2) provide a place for the dispatcher to exist
01:02 putter that's fine,
01:02 stevan putter: I am not sure I understand the way you are nesting packages
01:03 stevan are those scopes? or package namespaces?
01:03 * stevan thinks maybe he should read more of PIL-Run
01:03 putter pilrun could provide the mm-to-pkg link.  like it does now.
01:03 putter re nesting,
01:04 putter my fuzzy recollection of namespaces, perhaps now obsolete as there have been changes, is given package A{package B{package C{say $X::y;}}},
01:05 putter one looks for $y in... A::B::C::X, A::B::X , A::X, X.
01:07 stevan oh yes,.. I think you are right on that
01:07 stevan although the Apoc are supposed to be very very out of data
01:07 stevan date
01:07 stevan and they are very sparse on package/module information
01:07 stevan it is not a "fun" topic I think
01:07 putter it would be nice if the mm provided a "list of names of classes in currently lexical stack", or perhaps even better, a "given a variable name, a list of classes to check for it in".  that way, when p6l changes things, only the mm needs to be updated :).
01:08 putter right now it's just hardwired into p6_lookup().  check self, parent package, parent's parent, etc, up to root.
01:09 putter s/self/current pkg/
01:10 putter soo... what does Package etal do in the way of namespace support?  vars? subs/methods?  multimethods?
01:10 stevan multi-methods are provided by Class::MultiMethods::Pure
01:11 putter our $var;?
01:11 stevan all the multis are inside a single sub,.. which makes them easy to deal with
01:11 stevan nope
01:11 stevan well,.. yes and no
01:12 stevan I was talking with autrijus about this
01:12 stevan we decided that my's would be block/file scoped
01:12 stevan and that the package need not know about them
01:12 putter k
01:12 stevan and our's would be my's which also had an alias in the package namespace
01:12 stevan so
01:12 stevan this means I only support ours
01:13 putter hmm... are non-code vars importable?
01:13 stevan my $FooPkg = $::Package->new('$:name' => 'Foo');
01:13 stevan then you do:
01:13 stevan $FooPkg->STORE('&foo' => sub { ... });
01:13 stevan then $FooPkg->FETCH('&foo');
01:13 stevan I do manage the magical $?PACKAGE variable for it with the MM
01:14 stevan putter:  any type of var is supported
01:14 stevan I dont check anything though
01:14 stevan so you can stick a hash in a slot with a @sigil
01:15 stevan also,.. ::Module, ::Class and ::Role all implement the FETCH and STORE
01:15 stevan (actually ::Role doesnt yet, but the stub is there)
01:15 putter our $x; ==>  $FooPkg->STORE('$x', ...  Scalar->new() ?   Int->new() ?
01:15 stevan ::Class->FETCH('$.var') returns the meta-attibute
01:15 stevan putter yes, that would be it
01:16 stevan actually more like this
01:16 stevan package Foo; our $x;
01:17 putter hmm... getting the package name, full and short, back from a package object?
01:17 stevan $FooPkg->name gives you the short
01:17 putter and is there any connection between package objects.  eg, those for A::B  and A?
01:18 stevan Packages dont have long names though
01:18 putter err, "A::B::C"?
01:18 stevan $FooPkg->STORE('::Bar' => $::Package->new('$:name' => 'Bar'));
01:18 rafl j #madwifi
01:18 putter ah, ok
01:18 rafl Whops.
01:18 putter :)
01:19 putter ok, so given that Bar Package, can one crawl up link to FooPkg?
01:20 putter or otherwise get "Foo::Bar"
01:20 stevan nope, not really
01:20 putter (the string/name)
01:20 stevan ::Package is not very fleshed out yet
01:20 putter k
01:20 stevan I suppose that could be done
01:20 stevan I just need to think about it
01:23 putter ok... so my initial straman idea is to have a package PkgNNNN associated with each Package.  PkgNNNN::p6_lookup($var) gets the lexical context, a list of Package's, or their names, from it's associated Package.
01:25 putter hmm... but since Package/etal will handle any import issues, I think its FooPkg->give_me_packages_to_look_for('$x')
01:26 putter or better, especially if import does renaming, give me a list of absolute varnames to check.
01:27 stevan Module does the export stuff
01:27 stevan Package is really just a dumb namespace
01:28 putter so MumbleBar::p6_lookup('$x') calls BarPkg->look_where('$x') and gets back ['$Foo::Bar::x','$Foo::x','$*x']
01:28 putter ok, but hopefully they all have the same api.
01:29 stevan yes, they all use FETCH/STORE
01:29 stevan though I need some other things to list all the items in the namespace too
01:29 justatheory has quit IRC ()
01:30 putter ok, let's see....
01:30 putter oh, you mentioned some things had changed from mm1.  could you summarize?
01:31 putter api wise
01:31 stevan the lack of packages is a big thing
01:31 stevan there is no more MetaClass
01:31 stevan Perl6::Object is now $::Object
01:32 stevan MetaClass is now $::Class
01:32 stevan calling class methods requires the use of a pseudo-package
01:32 stevan $Foo->class::bar();
01:32 stevan and $Foo->meta has gone away
01:32 stevan $Foo is the meta already
01:35 putter how badly do we loose if for class C{has $.v},  a C::v method is created but no other note is taken of v's existance?
01:37 putter actually, looking at the pil, it will be possible to figure out what's an attr.  sigh.  I look forward to pil2.
01:39 putter re PIL, if you want to see the PIL for anything, you can do
01:39 putter ./pugs -B JS
01:39 putter jspugs> :pil.yaml class C{has $.v}
01:41 putter ok, are there any questions I should have asked but haven't?
01:41 putter :)
01:41 stevan :)
01:41 stevan no idea
01:41 putter ok...
01:41 stevan I will look over stuff more,.. and think about expanding upon Package's API
01:44 putter I was thinking of enabling   method foo() is perl5 { q!print $SELF->name()," in p5 code\n";! }  and then generating Int/Num/etc/etc from normal p6 files, with the backend creating the appropriate MM stuff.  Rather than using hand edited p5 files.  Thoughts?
01:45 putter Any downside immediately apparent?
01:47 putter Ie, P6::Value/Container would become a Prelude.p6, with some embedded p5 use.
01:48 justatheory has joined #perl6
01:49 stevan putter: I really am not familar enough to answer in any meaninful way
01:49 stevan and I am being called by my wife,.. movie time
01:49 justatheory has quit IRC (Client Quit)
01:49 stevan putter: I will read more of the code tomorrow and have some more questions then
01:49 * stevan &
01:50 putter thanks!
01:50 putter thanks stevan.
02:07 putter
02:09 putter Does p6 oo support preemptive mixins.  Ie, class C does/is D, and if there is a conflict, _D_'s version takes priority.  Rather than the usual inheritanc C-has-priority, or Rule mixin cry-conflict.
02:10 putter s/\./??/
02:12 putter It simplifies  C is D is CTemplate.  Especially if C can be parameterized on D.
02:19 putter &]
02:19 putter has quit IRC ("Leaving")
02:32 gugod has quit IRC (Read error: 110 (Connection timed out))
02:38 rlb3 has quit IRC ()
02:42 joepurl has quit IRC (Remote closed the connection)
02:45 elmex_ has quit IRC ("leaving")
02:45 joepurl has joined #perl6
02:48 ods15 has joined #perl6
03:05 buu ?eval 1
03:05 evalbot_7086 1
03:05 buu ?eval say 1
03:05 evalbot_7086 1 bool::true
03:05 buu hrm
03:05 f0rth ttttttttt
03:09 Odin-LAP has quit IRC ("What's this button do?")
03:25 KD6PAG has joined #perl6
03:27 KD6PAG has left
03:34 szabgab has left
03:34 szabgab has joined #perl6
03:35 saorge has quit IRC (Connection timed out)
03:44 KD6PAG has joined #perl6
03:51 Amnesiac has quit IRC ("Leaving")
03:54 svnbot6 r7087 | fglock++ | * perl5/Hash - an Array or a Pair can be stored into a Hash
03:54 svnbot6 r7087 | fglock++ |   %a=(1=>2) works now
03:55 evalbot_7086 has quit IRC (Remote closed the connection)
03:55 KD6PAG Q: Anyone have know where there's sample code that would allow me to do a POST operation with a type="file"?
03:55 evalbot_7087 has joined #perl6
04:11 obra KD6PAG: see #perlhelp
04:13 Jooon has quit IRC (Remote closed the connection)
04:13 Jooon has joined #perl6
04:19 xinming_Beijing has joined #perl6
04:23 buu There's a #perlhelp?!
04:25 gugod has joined #perl6
04:29 xinming_Beijing buu: hmm, I think you should try #perl
04:33 buu Why/
04:34 buu (It turns out there really is a #perlhelp, with all of 3 people)
04:45 xinming_Beijing has quit IRC (Remote closed the connection)
04:47 rantanplan_ has quit IRC (Remote closed the connection)
04:47 KD6PAG has quit IRC ("Leaving")
05:01 SM_ax has joined #perl6
05:39 joepurl has quit IRC (Remote closed the connection)
05:42 joepurl has joined #perl6
05:42 gaal morning! ah, missed putter :(
05:49 autrijus going to airport in 30 minutes
05:49 autrijus it seems that erik meijer is doing some most amazing work in his language-of-choice that is VB
05:50 gaal autrijus, .es?
05:50 autrijus with lambda expressions, query combinators, local type inference, etc
05:50 gaal eirk meijer, isn't he the function guy with the yellow flower?
05:50 autrijus .ee yes
05:50 gaal ee, yeah
05:51 autrijus I don't remember the yellow flower, but likely yes
05:51 autrijus his work is under the LINQ banner
05:52 alinbsp has joined #perl6
05:52 gaal there's a "Hugs98 for .NET" link on his home page :)
05:52 autrijus # http://msdn.microsoft.com/vbasic/future/default.aspx?pull=/library/en-us/dnvs05/html/vb9overview.asp
05:52 GeJ has joined #perl6
05:53 xinming_Beijing has joined #perl6
05:53 autrijus also the equivalent of $obj.$method
05:54 xinming_Beijing is now known as xinming
05:54 xinming autrijus: Hi. :-)
05:54 szabgab has left
05:55 autrijus hi xinming
05:56 GeJ heya all.
05:56 gaal any general tips on debugging monadic code?
05:57 autrijus gaal: isolate them into small functions and write unit or quickcheck tests for their behaviour?
05:57 xinming autrijus: I've brought A3E in BeiJing. :'( There is no M2C or M2N left for me...
05:57 autrijus failing that, liftIO (print)
05:57 gaal autrijus: that you can do Select in the language is quite amazing
05:57 autrijus xinming: aw. does it work okay?
05:57 autrijus gaal: it's just sugar for .Select(c => c.foo)
05:58 gaal well! that's something too (to get Dim to answer to .Select)
05:58 xinming autrijus: hmm, Well, Except the speed... I think It performs much poor than yours. :'(
05:58 xinming autrijus: by the way, How much does your laptop cost?
05:58 autrijus .select:{.foo, .bar}.where:{.val < 10}.orde_rby:{.baz}
05:59 autrijus xinming: ntd$40k I think
05:59 xinming autrijus: I've just done setting up the Linux System... Might be back for soon...
05:59 autrijus gaal: the amazing thing to me is that they made the query combinator range over objects, XML and relational DB as domains
05:59 autrijus it's like Class::DBI done right ;)
05:59 xinming autrijus: ??? How much Us dollars? :-S
05:59 obra autrijus: sample code?
05:59 obra xinming: divide by 33
06:00 autrijus obra: http://msdn.microsoft.com/vcsharp/future/linqsamples/
06:00 * obra just got suckered into the new laptop game too :)
06:00 autrijus they are in C# but it's just sugar; the underlying dynamism and inferrence works for all CLR languages
06:01 autrijus erik mentioned on LtU that most of the stuff is ported en masse from HaXml and HaskellDB etc
06:01 autrijus which, if true, is very exciting.
06:02 xinming I bought my laptop too expensive maybe... - -b
06:03 chihchun has quit IRC ("Terminated with extreme prejudice - dircproxy 1.0.5")
06:04 * obra gets excited for hot new language features
06:04 autrijus oh, apparently they range over WinFS too
06:05 gaal why not XPath?
06:05 gaal they have sometihng like template::extract to query xml
06:05 autrijus gaal: this to xpath is like XML::Twig to xpath
06:05 gaal re: your remrk autrijus from the other day about parsers not being symmetrical with queries
06:06 gaal (hoping i got that right)
06:06 autrijus nod. I remember XQuery
06:06 autrijus but you can't use XPath/XQuery as a templating language
06:07 autrijus you need XSLT for that which is nonreversible
06:08 gaal I'm not sure I understand the analogy viz. XML::Twig..
06:08 gaal they have the example Dim CountriesWithCapital As XElement = (reverse template)
06:09 gaal i should study what they're doing more, probably,
06:09 gaal but if it's a *query* then a reverse template is certainly quick to write, but an xpath expression is probably more powerful?
06:10 gaal but never moose, I'll read this more carefully while you're on the plane :)
06:11 autrijus moose :)
06:11 gaal soon in an Acme::MetaSyntactic module near you :-)
06:16 masak :)
06:17 * masak still hasn't really figured out what this "moose" is
06:17 gaal http://forum2.org/moose/
06:17 * masak reads
06:19 masak weird
06:21 masak and i don't really see how it relates to XSLT :)
06:21 masak or is "never moose" just a silly expression? yeah, probably
06:22 masak ok, never moose :P
06:22 gaal meditate on it and you'll see it
06:22 gaal you're certainly getting there :-)
06:22 hcchien I saw the control quickref, and interesting in "for @foo -> $x, $y, $x { ... }". how does it work?
06:23 autrijus hcchien: it counts arity of the lambda argument, see 3, then take 3 a time
06:23 hcchien autrijus: yes. I think so. but $x will be 1, 4, 7 if the array = (1..10)
06:24 hcchien won't 3, 6, 9 overwrite the $x?
06:24 autrijus I think it should be an error myself :)
06:25 masak nod
06:25 masak having the same argument twice leads to insanity
06:25 masak and why would one want to?
06:26 gaal i can imagine using undef to skip args
06:26 hcchien if I just want to skip the first one? :-)
06:26 autrijus or _
06:26 autrijus but undef is more perl6ish
06:26 autrijus I mean perlish
06:27 autrijus but I need to run
06:27 autrijus see ya again in a day
06:27 gaal for @foo -> undef, $x, $y -> { ... }
06:27 * autrijus waves &
06:27 gaal bye a
06:27 gaal _ will end up synonymous with undef :)
06:28 gaal (actually, no, undef in some places, Any in others...)
06:29 masak ?eval my @a = 1..10; for @a -> $x, $y, $x { say $x }
06:29 evalbot_7087 1 4 7 Error: Insufficient number of required parameters: 1 actual, 2 expected
06:29 masak ha-haa!
06:29 masak ?eval my @a = 1..10; for @a -> undef, $y, $x { say $x }
06:29 evalbot_7087 Error:  unexpected "f" expecting ";", statements or end of input reserved word
06:29 masak aww :(
06:30 masak add a test? :)
06:30 hcchien hmm...., _ doesn't work for me.
06:31 masak hcchien: i don't think it should
06:31 gaal i think it's not specced, so p6-l it first? (better check the synopses first)
06:31 masak all of them? that's like, O(n)
06:31 gaal hccien, it shouldn't work... it's how that kind of thing is spelled in haskell
06:32 gaal masak, heh, no, s04 should be enough :)
06:32 hcchien oh, right. so autrijus said that undef is more perl6ish.
06:32 masak gaal: oki :)
06:32 hcchien but evalbot doesn't like undef.... :-)
06:33 gaal hccien, right, i was joking about how p6-l posts from people like yuval and luke are getting haskellish
06:34 gaal masak, `The "for" statement` doesn't mention it.. i'd look for the definition of pointy subs, maybe s06
06:34 masak hcchien: no, it's not a feature that's in perl6, yet. i'm going to suggest it on the mailing list
06:34 masak gaal: oki
06:34 gaal .....which doesn't mention it either :)  p6-l query time i think.
06:34 masak yep, i'm on it :)
06:34 gaal masak++
06:35 hcchien masak++
06:38 hcchien and pugs won't supprt for (;;) anymore?
06:42 gaal oh, see the "loop" statement
06:42 gaal in s04 i believe.
06:43 gaal yes, s04. loop $i = 0; $i < 10; $i++ { ... }
06:43 gaal you can also spell infinite loops as loop { ... }
06:44 hcchien oh, ok. I saw that.
06:44 masak gaal: henceforth, i will mercilessly exploit you as my index for synopses :P
06:45 masak at least s04 and s06 which you seem to know well
06:45 * gaal laughs
06:50 dduncan has quit IRC ()
06:51 iblechbot has joined #perl6
06:59 saorge has joined #perl6
07:05 masak does @_ still contain all the arguments in a sub in p6?
07:09 masak if i write a sub which sometimes takes a hashref as a first argument, and sometimes not, is that a good time to use a multi sub?
07:09 gaal masak: @_ still contains them all
07:10 gaal and probably yes :)
07:10 gaal but currently at least, @_ is only defined if you don't provide an explicit signature
07:11 gaal i don't know if this is specced actually.
07:11 gaal but s06 will tell you :)
07:12 masak :)
07:12 nothingmuch has joined #perl6
07:13 masak reason i'm asking is, i've started to look at GetOptions in Getopt::Long, and it does a lot of @_ checking
07:13 masak i'm thinking of the best way to p6ify those idioms
07:13 gaal that's a sure sign you want multis with explicit args.
07:13 masak i think so too
07:13 masak a lot of code will just disappear into signatures :)
07:14 gaal i gave a talk in my local pm group about p6 for p5 programmers
07:14 gaal the warmup was about function sigs
07:14 gaal shooting fish in a barell
07:15 gaal barrel even.
07:16 GeJ gaal: in your post yesterday you suggested that one might not expect the arguments/options to parse to not necessarily belong to @ARGV, I'm a little lost there. Do you have an example in mind?
07:16 masak shooting fish in barrel? is that a classic example?
07:16 chihchun has joined #perl6
07:16 GeJ s/belong to/come from/
07:17 gaal GeJ, one example is tests. you want to enter the getoptions function many times; setting a global var each time is, well, quaint but not pretty.
07:17 gaal another example is when you provide a CLI of your own from within a tool
07:17 gaal eg., something with a "console".
07:18 gaal masak, what i meant is that the talk was intended to show people who already like p5 why p6 is better/needed
07:18 gaal and we've developed blindness to many quirks and misfeatures
07:19 nothingmuch morning
07:19 GeJ morning nm
07:19 masak morning
07:19 gaal function sigs save you (well, me) from the stupidest bugs, and save lots of typing
07:19 gaal they have other benefits as well of course :)
07:19 gaal (reflection)
07:19 gaal heya nuffin
07:20 larsen has joined #perl6
07:20 GeJ gaal: hum, I see... interesting, didn't think about this one. Something I'll have to keep in mind as I'm considering doing a small CLI client for a project I'm working on.
07:20 gaal so take a bunch of "we're doing just fine" p5 programmers, who might be worried about their significant investment in p5
07:21 gaal and get them to like p6
07:21 masak gaal: luke palmer took your _ joke seriously. that's sort of funny in itself
07:21 gaal not hard really, since p6 really is wonderful :)
07:21 gaal 'tis. :)
07:22 GeJ Well, I know that to some people around here, damian is not the more popular person in the world, but his IO::Prompt seem sexy enough to give it a try. I wonder how he handles this.
07:24 gaal Damian's great! His code's just hard for mortals to understand.
07:24 * GeJ nods
07:25 wwf has quit IRC (Read error: 110 (Connection timed out))
07:26 gaal GeJ: you can completely frontend GetOptions with something that does the @ARGV localization for you. Trivial code, makes your client code much prettier
07:28 gaal in a p6 version we'll just have multi sub GetOptions(%spec, ?@source = @*ARGS is rw) returns Getopt::Long
07:29 GeJ masak: you're on this?
07:30 gaal hmm, need to be clever with the other variant so that GetOptions(opt1 => $target.... source=>@*ARGS) doesn't preclude an option called "source"
07:32 masak GeJ: sort of, still muddling over it, but yes
07:33 GeJ m'kay
07:35 gaal [very off topic] say, anyone know the reason for the naming of java's reflection "forName" method? what does "for" signify there anyway?
07:35 nothingmuch Base64.t still hangs
07:37 GeJ I saw that Mister A. set the 6.2.10's poem. A release schedule is planned already?
07:37 * gaal doesn't know
07:41 GeJ Just to be sure, a Haskell guru will implement stevan's MM2 into Pugs, and then all (or most of if @Larry decide to change things) the OOP syntax will be available. Am I correct?
07:43 GeJ That's the way I understood it. MM and then MM2 was sort of a blueprint for autrijus to code it in Haskell. But I'm prolly wrong.
07:45 gaal yes and no; having much of the implementation in Perl means other compiler implementations can reuse it
07:47 * nothingmuch coughs
07:49 xinming has quit IRC ("I really love GNU")
07:50 gaal what?
07:51 nothingmuch the Blondie project is all about that
07:51 nothingmuch have the language define the prelude by itself
07:51 nothingmuch (horribly inefficient, but reusable and useful)
07:51 nothingmuch and have the compilers provide builtins for prelude functions as they see fit
07:51 gaal is it clear that all of the MM can be expressed in the prelude?
07:52 nothingmuch i don't know, but most of it can
07:52 gaal putting aside circularity for a moment.
07:52 nothingmuch and the stuff that can't can be stubbed
07:52 nothingmuch forcing the compiler to provide a version
07:52 nothingmuch as for circularity - it's also useful
07:52 gaal sure
07:52 gaal but it's a different problem.
07:52 nothingmuch if the prelude is defined circularly, the compiler can choose where to break the circle
07:55 gaal bbiab
07:56 xinming_Beijing has joined #perl6
07:57 xinming_Beijing is now known as xinming
08:00 dada has joined #perl6
08:00 gaal nothingmuch: i acknowledge this is cool and potentially very useful
08:01 gaal i'm just saying, it's an experiment, and if it turns out to be too hard
08:01 gaal or too slow
08:01 gaal pugs can still do OO prims in haskell
08:01 nothingmuch it's actually both easy and fast
08:02 gaal good :)
08:02 dada pugs build is borked
08:02 nothingmuch (the output... I don't know about compilation yet. It works reasonably fast, but it's not optimizing, or anything)
08:02 gaal dada, error?
08:02 dada NMAKE : fatal error U1073: don't know how to make 'pugs.exe'
08:02 dada Stop.
08:03 gaal oh, that's annoying frontend stuuf again.
08:03 nothingmuch (the process itself is very simple though - take the hash of each node being applied, and see if it can be replaced)
08:03 gaal dada: make sure you have a file called "pugs" (no extentsion)
08:03 gaal that's a perl5 sctipt
08:03 gaal then, create a file "pugs.exe", never mind what's in it
08:03 dada yes, I have it
08:03 gaal then run nmake again
08:04 dada let's try
08:07 dada seems to be working
08:11 gaal this is a weird extension thing happening on win32 since `pugs` has been made a script
08:12 gaal i'm trying to catch putter to see how bad we need this script... i can see that it saves work, but it also causes problems
08:15 khisanth_ has joined #perl6
08:19 joepurl has quit IRC ("Lost terminal")
08:19 joepurl has joined #perl6
08:24 Khisanth has quit IRC (Success)
08:32 scook0 has joined #perl6
08:40 gaal following autrijus' mention of LINQ, this is an interesting and well-written paper: http://research.microsoft.com/~emeijer/Papers/XML2003/xml2003.html
08:48 autrijus rehi from CKS airport
08:49 autrijus boarding in two hours :)
08:49 GeJ rehi :)
08:50 clkao Mr Tang
08:50 autrijus Mr Cow
08:50 clkao Mad Tang
08:51 autrijus :)
08:52 rafl How about a release timeline for 6.2.10? Is there anything known?
08:53 autrijus I wonder if I can do that en route to estonia
08:53 autrijus but more realistically, it will be on time for euro oscon
08:53 autrijus since I have ~2wk of time
08:54 wilx has joined #perl6
08:54 gaal cool, i have a talk about pugs on 6 oct
08:54 rafl Fine. I thought the release was already planed for the beginning of this month..
08:54 rafl gaal: Where?
08:54 gaal maybe we can release then :)
08:54 gaal my local pm group
08:55 gaal tel-aviv
08:55 rafl Ah, OK.
08:56 gaal autrijus, was the flight delayed, or were you just very lucky with check-in and that stuff?
08:56 rafl Maybe someone of you is from germany and wants to give a pugs/perl6 talk as well? I'm co-organizing a linux-conference here.
08:56 gaal iblech maybe?
08:57 autrijus gaal: no, I misremembered the time
08:57 autrijus fortunately on the right direction
08:57 gaal heh
08:57 penk has joined #perl6
08:57 rafl gaal: Hm, havent seem him for a while..
08:57 gaal i know a chronic latecomer who sometimes manages to fool himself by setting his clock wrong
08:58 gaal autrijus, can you maybe take a look at the lexical pragma thingie?
08:58 gaal the idea is that in BEGIN time i gather pragmas to be installed
08:58 gaal and the parser puts them in the AST
08:58 autrijus which test is that?
08:59 gaal but it's putting it in the wrong place
08:59 gaal t/packages/lexical_pragmas.t
08:59 nothingmuch autrijus: remember what happenned with my flight?
08:59 nothingmuch ;-)
09:00 gaal nothingmuch: i met a girl in mongolia who didn't understand how come her visa to china was so much longer than everyone else's
09:00 gaal turned out she read the expiry date as dd-mm-yy
09:00 gaal it was yy-mm-dd
09:00 nothingmuch oh crap
09:01 gaal yeah, she had to leave in a hurry
09:01 GeJ rafl: where are you from?
09:01 nothingmuch china is not the place to be doing that, is it?
09:01 gaal luckily she had two days left
09:01 nothingmuch phew
09:01 * nothingmuch finished the setup bug... that was a pain
09:01 rafl GeJ: Germany, Saxony, Chemnitz.
09:01 gaal she wouldn't have gotten into any *real* trouble:
09:02 gaal just denied reentry, and have to wait a bit longer in mongolia to get a new visa
09:02 gaal costly, but mongolia is not a bad place to be in :)
09:02 gaal in the meanwhile that is.
09:02 nothingmuch aye
09:02 * nothingmuch would like to hike/bike in mongolia
09:02 GeJ rafl: ok. Germany, Bayern, Munich myself.
09:03 dada !!!
09:03 rafl GeJ: That's next to where iblech lives, afaik.
09:03 dada "pugs.exe is not a valid Win32 application." :-)
09:03 gaal daad: yeah, run pugs_bin.exe
09:03 gaal s/ad/da/
09:04 gaal we have to sort that out :)
09:04 dada sheesh
09:04 gaal alternatively, perl pugs
09:04 dada doesn't work either
09:04 dada Can't exec /bin/sh at pugs line 1.
09:04 gaal beh
09:05 gaal perl -X pugs
09:05 dada same
09:05 gaal sorry, lowecase -x
09:07 dada oh yes, works now
09:07 dada sort of...
09:07 dada I see intermixed shell and pugs prompts!
09:08 dada and when I quit pugs with :q, the shell closes!
09:08 gaal autrijus: oh, t/packages/lexical_pragmas.t won't parse now, change the install local func in Paser:913 to install in the local env rather than the caller
09:08 gaal that isn't right either, but at least the test will run :-/
09:09 gaal dada, then run pugs_bin.exe directly :(
09:09 dada gaal: yes, that's what I'm doing
09:11 autrijus k
09:11 autrijus hm, maybe we should make a pugs.bat
09:11 dada oh well, nmake test doesn't work either
09:11 autrijus for win32
09:12 dada or just: copy pugs_bin.exe pugs.exe
09:12 autrijus but that will prevent pugs/perl5 from running
09:12 autrijus which is the raison d'etre
09:12 nothingmuch has anyone seen iblech lately?
09:12 autrijus another thought is move the wrapper into haskell space
09:12 autrijus Main.hs
09:12 gaal nothingmuch: not on channel, but he has made some commits
09:13 gaal autrijus: that's what i thought - is it just command line parsing the wrapper is trying to avoid?
09:13 autrijus yes
09:13 * nothingmuch wants to get people to help with Blondie
09:13 nothingmuch any volunteers for learning?
09:13 autrijus gaal: you can probably do that?
09:13 dada who's Blondie?
09:13 nothingmuch dada: an intermediate language that i'm developing to prototype some compilation approaches
09:14 gaal autrijus: i'll give it a whirl; wanted to talk with putter to make sure i understood the motivation first
09:14 nothingmuch type inferrence based pessimistic unboxing
09:14 nothingmuch and selective replacement of prelude
09:14 autrijus gaal: the motivation is -BPerl5
09:14 * nothingmuch has problems with the wrapper
09:15 nothingmuch it should be built by the makefile to use $^X
09:15 evalbot_7087 has quit IRC (Remote closed the connection)
09:15 nothingmuch not base on $PATH like it does now, or /usr/bin/perl like it did before
09:15 gaal nothingmuch: it'll still have problems on w32 then
09:15 evalbot_7088 has joined #perl6
09:15 gaal and anyway there should not be a perl5 interpreter involved for most programs
09:15 autrijus right
09:15 gaal i bet this slows down smokes by a lot
09:16 dada $^X is ok on win32
09:16 svnbot6 r7088 | autrijus++ | * Import GHC.Exts for DrIFT.Perl5; that's the only change required by GHC 6.4.1-release
09:16 dada it always returns the full path to perl.exe
09:16 autrijus C:\work\pugs>perl pugs
09:16 autrijus Can't exec /bin/sh at pugs line 1.
09:16 dada autrijus: perl -x pugs
09:17 gaal autrijus: so the underlying motivation was to get p5 $^X in pugs? we can sure throw that into haskellspace during the build too.
09:17 nothingmuch yes, and we should
09:17 nothingmuch the perl that the user selects to run Makefile.PL should be consistently used
09:17 nothingmuch not guessed later
09:17 nothingmuch gaal++
09:18 autrijus yes
09:18 autrijus dada: not acceptable really
09:18 autrijus as old versions of pugs will have a pugs.exe installed
09:18 gaal what's the helper named perl5 anyway? i don't have an executable with that name on my system
09:19 dada autrijus: you mean the copy is not acceptable?
09:19 autrijus "perl -x pugs" is not
09:19 autrijus gaal: mm? it's perl5/PIL-Run that runs perl5 helper
09:20 dada oh well, I did a pugs.bat which contains "perl -x pugs"
09:20 dada seems to work
09:20 autrijus dada: will it win over .exe?
09:20 dada I deleted the fake .exe, of course
09:20 autrijus no it would not
09:22 gaal a .com might win... :-p
09:22 xinming has quit IRC ("I really love GNU")
09:22 nothingmuch eep
09:22 gaal what? .com is great
09:22 gaal load to ram, execute
09:22 joepurl has quit IRC (Remote closed the connection)
09:22 gaal no header muckiness
09:22 * gaal hides
09:22 autrijus riight
09:23 gaal (p5 $^X in pugs coming up as soon as this sanity build finishes)
09:24 dada I can't come up with a proper name for a pugsbugs test
09:25 gaal btw: i can't seem to build a pugs with precomp prelude and with -O0  -- ghc dies horribly in the second phase, apparently because an unoptimized precomp prelude is huge
09:25 dada ohhhhhhhh wait wait
09:25 gaal wait actually
09:25 gaal why should it be any different in size?
09:25 dada t/examples/examples.t is borked!
09:25 dada it looks for pugs.exe, hardcoded in the file
09:25 G2 has joined #perl6
09:26 dada now that I have pugs.bat, it miserably fails
09:26 wwf has joined #perl6
09:26 nothingmuch http://www.instructables.com/
09:27 autrijus mm I'm seeing
09:27 autrijus C:\work\pugs>pugs_bin t\01-sanity\08-test.t
09:27 autrijus pugs_bin: user error (***
09:27 autrijus    unexpected ":"
09:27 autrijus    expecting operator or "!!"
09:27 autrijus    at C:\Perl6\lib/Test.pm line 100, column 40
09:27 autrijus       t\01-sanity\08-test.t line 1, column 1)
09:27 autrijus probably bad old c:\perl6
09:28 autrijus aye
09:29 dada I don't have 08-test.t there
09:29 dada svn up again?
09:29 dada mmm no, is there
09:30 dada 1..1
09:30 dada ok 1
09:34 dada ok, what are pugsbugs tests supposed to do? fail if they hit the bug?
09:34 svnbot6 r7089 | gaal++ | add perl5path to config (contains the $^X of the building perl5)
09:34 svnbot6 r7090 | gaal++ | add tests asserting a module is loaded once, but &[un]?import hooks get called many times
09:35 gaal you can :todo<bug> them
09:35 gaal make sure they do pass once the bug is fixed
09:36 gaal it's okay to put parsefailing bugs there, usually in a file of their own
09:36 gaal though in the release they'll probably be skipped.
09:37 autrijus "nmake smoke" on win32 fails due to the missing pugs.exe
09:37 gaal i haven't tried a smoke since before my vacation ;-)
09:38 gaal we really have to unwrap pugs
09:38 gaal i'll work on it today.
09:39 autrijus wonderful
09:39 autrijus seeing that people maybe interested to svn co and try it out in 48 hours
09:39 autrijus that's none too soon :)
09:39 dada wow, committed :-)
09:39 autrijus You probably don't want to export an operator name; instead
09:39 autrijus  define a new variant on the new operator (eg. multi sub *infix:<+>):"&infix:%"
09:39 autrijus at "blib6/lib/Set/Symbols.pm" line 145 column 1
09:40 evalbot_7088 has quit IRC (Remote closed the connection)
09:41 evalbot_7090 has joined #perl6
09:43 gaal eep, why are installbin and other config directives pointed at perl(5) paths?
09:43 gaal please nobody `make install` :-)
09:44 autrijus @x = (a => %x, b => %y)
09:44 svnbot6 r7091 | dada++ | added test for bug: bool::false not parsed correctly on LHS of an operator
09:44 autrijus this is kosher right? no need to
09:45 autrijus (a => hash(%x)) or (a => \%x) or whatnot
09:46 gaal i hope so? doesn't => impose Item context?
09:46 evalbot_7090 has quit IRC (Remote closed the connection)
09:46 evalbot_7091 has joined #perl6
09:46 autrijus right
09:46 autrijus fixed
09:47 * gaal hopes to pick up that "be blazingly fast" trick while autrijus is in .il :)
09:48 gaal so, Pugs.Main:84 already had run ("-B":backend:file:_) = slurpFile file >>= doCompileRun backend file
09:48 G2 has quit IRC ("oops")
09:48 gaal what was wrong with that? just the $^X? or something else?
09:49 gaal ahhh, the comment in /pugs:41 about the hack needing FindBin?
09:50 svnbot6 r7092 | autrijus++ | * NameGen: Hash in pair value position is just fine as => imposes Item context
09:51 evalbot_7091 has quit IRC (Remote closed the connection)
09:51 evalbot_7092 has joined #perl6
09:53 nnunley has joined #perl6
09:58 spinclad has quit IRC ("(rebooting)")
10:00 * nothingmuch goes to have lunch
10:07 saorge has quit IRC (Read error: 110 (Connection timed out))
10:11 autrijus gaal: yes, precisely that
10:11 autrijus also the runtimes needs to be installed from perl5/
10:11 autrijus but that is somewhat orthogonal
10:12 gaal i've probably no time to sort out the perl5 installation path issues - please someone take a look, this is critical.
10:13 azuroth how do I go about getting a job in melbourne?
10:13 gaal autrijus: i'll definitely do the unwrappage.
10:13 autrijus gaal: wunderbar.
10:13 autrijus the perl5 installation foo needs a rethink
10:13 autrijus I think we don't want relocate perl5
10:14 autrijus yet separate Makefile.PL sucks
10:14 autrijus so probably sometihng intelligent in the mainMakefile.PL
10:14 gaal why is there any perl5 installation info at all? very scary :)
10:14 autrijus mm?
10:15 gaal why does pugs contain any perl5 paths, except for the $^X it was built against?
10:15 gaal i mean right now it just looks like a bug someone accidentally injected:
10:15 gaal ./pugs_bin.exe -V:installsitebin
10:16 gaal installsitebin: c:\perl\bin
10:16 gaal make install will do terrible things again
10:16 autrijus right... it's a bug
10:16 autrijus though it's somewhat fine, as it only installs .exe files
10:16 autrijus and iirc has been like that for a while
10:16 gaal if we avoid reusing these names, we can maybe avoid that scenario
10:16 gaal oh?
10:16 autrijus I agree it's wrong
10:17 autrijus OT: is there some way, via CSS
10:17 autrijus to scale fonts so that it stretch to fit?
10:17 gaal i hope we get an alternative to EU::MM for p6 anyway (though i ain't working on it :-)
10:19 gaal not that i know. you are going for takahashi eh? :)
10:19 autrijus yes. :)
10:19 gaal (my css-fu is very limited)
10:19 autrijus nod
10:19 gaal that ruby presentation used images, 'fcourse
10:19 autrijus mm font-size-adjust, font-stretch
10:21 gaal wow, zvon.org do it again
10:21 gaal they have references for so many interesting things :)
10:21 * nnunley phears Blondie.
10:23 gaal autrijus: those properties don't seem to work on my browser (firefox 1.06/win32)
10:24 autrijus apparently font-size-adjust is the way to go
10:25 autrijus ok, so a Font::AFM and font-size-adjust is totally the way to go
10:25 autrijus either precalculated or via javascript
10:26 autrijus I should be working on the content but yet I'm hacking away at the style
10:26 autrijus what's wrong with me :-/
10:27 gaal you must be human!
10:28 gaal careful, that's mildly contagious and eventually lethal
10:31 * autrijus purrs
10:40 GeJ hum, don't want to sound like an ass or something, but : «[10:49] <autrijus> boarding in two hours :)» and it's 12:40.
10:40 GeJ Happy hacking in an airport is fun, but missing the plane is a pain.
10:40 GeJ just my $0.02 though
10:40 autrijus 16:55 < autrijus> gaal: no, I misremembered the time
10:41 GeJ Oh, oki. My mistake. Sorry for the noise :)
10:41 autrijus np :)
10:41 autrijus I'm downloading visual haskell
10:41 autrijus hopefully will finish on time
10:44 gaal visual haskell!?
10:45 gaal visual haskell++#6 :-)
10:46 gaal autrijus: when in a rush on shared media, decrease everybody elses MSS! and tcpkill their connections! be ruthless! we don't need ruths! :-p
10:48 autrijus ROFL
10:49 * nothingmuch returns from lunch
10:50 nothingmuch nnunley: want to get involved?
10:54 iblechbot has quit IRC (Connection timed out)
10:57 azuroth what sort of things need porting to perl 6?
10:57 nnunley nothingmuch:  Would love to
10:57 autrijus azuroth: your favourite program :)
10:58 nothingmuch azuroth: Getopt
10:58 azuroth masak's working on getopt, I think
10:58 nothingmuch nnunley: what do you know?
10:58 nothingmuch azuroth: in that case, XML::SAX on steroids
10:58 nothingmuch the perl 6 object model lets us do such things more cleanly
10:58 azuroth hokay. I'll look into it
10:59 nothingmuch another option is taking the lessons learned from DBIx::Class, and trying to consult stevan on a CDBI persistence layer based on the metamodel
10:59 nothingmuch such that the meta class gives the persistence, instead of the super class
10:59 nnunley nothingmuch: Be more specific. :)  I have some basic compiler theory under my belt.  A long time ago I looked at doing an AST based reduce/apply engine, but didn't get that far.
10:59 nothingmuch nnunley: i mean specific to blondie
10:59 nothingmuch the blondie todo:
11:00 nnunley nothingmuch: Ahh.  I've just been tracking it since you added it.
11:00 nothingmuch refactor Param into Thunk
11:00 nothingmuch make the type inferrencer support higher order functions
11:00 nothingmuch and compile to PIR
11:00 nothingmuch oh, and support union types (it can be either this or that, we can only find out at runtime)
11:01 nothingmuch do any of these interest you?
11:01 nnunley nothingmuch:  Union types, ala SSA?
11:01 nothingmuch if so i can help you get started... i'd really love for someone without my bias to look at the code
11:01 nothingmuch i dunno
11:01 nothingmuch let me find out
11:01 nothingmuch what's ssa?
11:01 autrijus mm 463 fails, a mild releng challenging
11:02 nothingmuch structures semantic analysis?
11:02 nnunley nothingmuch:  Single Static Assignment, IIR the acronym correctly.
11:02 nothingmuch ah
11:02 autrijus "tagged" union types?
11:02 autrijus aka variant types
11:02 nothingmuch we don't have assignments yet
11:02 autrijus because there are also untagged union types aka (+)
11:03 nothingmuch i think you could say that blondie is already SSA
11:03 nnunley nothingmuch:  http://en.wikipedia.org/wiki/Static_single_assignment_form
11:03 nothingmuch because parameter binding is
11:03 * autrijus plugs ANF in stead of the isomorphic SSA
11:04 nothingmuch so what does a union type have to do with SSA?
11:04 gaal (i must do some $work, will only be able to commit the unwrapping later)
11:04 nothingmuch http://en.wikipedia.org/wiki/ANF
11:04 nothingmuch autrijus: please fill it in
11:05 autrijus nothingmuch: A Functional Perspective on SSA Optimisation Algorithms
11:05 nnunley nothingmuch: it seems to be similar in intent to the theta operator for SSA.
11:05 autrijus it's the functional equivalent of SSA
11:05 autrijus it's much happier than SSA because all it has is binding and lambda
11:05 autrijus PIL was glorified ANF.
11:05 * nothingmuch cannot find theta on the ssa page
11:05 nothingmuch autrijus: what is the TLA?
11:05 autrijus Administrative Normal Form
11:06 nnunley Err... Sorry, Phi, not theta.
11:06 nothingmuch nnunley: please wait, reading
11:07 nothingmuch autrijus: please put a link in this page: http://en.wikipedia.org/w/index.php?title=Administrative_Normal_Form&amp;action=edit
11:07 autrijus nothingmuch: I'm boarding _right now_
11:07 nothingmuch oh, okay
11:07 autrijus so probably not this moment
11:07 gaal have a nice flight!
11:07 autrijus ask #haskell to fill it in
11:07 gaal "Administrative Normal Form"!? probably in triplicate.
11:08 nothingmuch autrijus: don't crash or anything
11:08 autrijus aka A-normal form
11:08 autrijus nothingmuch:
11:08 autrijus maybe I'll land to an island with fiber optic network etc
11:09 nothingmuch hah
11:10 nothingmuch nnunley: no, not really like phi
11:10 nothingmuch simpler
11:10 nnunley Ok.
11:10 nothingmuch assume you assign a value into the array element 1
11:10 nothingmuch and a value of another type into element #2
11:10 nothingmuch then you take out element i
11:11 nothingmuch the compiler cannot know (unless the compiler is really crazy) what type willc ome out of the array
11:11 nothingmuch so the array must return boxed types
11:12 nothingmuch as for phi - the moment we have assignment we will add ssa ;-)
11:12 nnunley Couldn't the type be widened until it encompases both the types of elements 1 and 2?  (Of course, I'm making this a 'simple matter of coding')
11:12 nnunley nothingmuch: Got it.
11:12 nothingmuch yes
11:12 nothingmuch that's the point of the excercise
11:13 nothingmuch the type of the array becomes [PV|IV] if the array is assigned 1 and "foo"
11:13 nothingmuch and every value coming out of the array must be checked for at runtime
11:16 * nothingmuch doesn't like acm
11:16 nothingmuch they should give me all their articles for free
11:16 nnunley They definitely should.  It's a nice big black hole.
11:16 nnunley I guess that's why I almost always hit citeseer first for research.
11:17 * nothingmuch was just clicking on links
11:17 nothingmuch the problem is that most articles are unaccessible to me
11:17 nothingmuch i lack the vocabulary
11:18 nothingmuch so it's really not worth $10 to figure out that I don't understand the language
11:18 Aankhen`` has joined #perl6
11:18 nnunley nothingmuch:  Right.  Same issue with me.  I have to muddle through the notation.  Which is one of the reasons why citeseer is nice -- it's free.
11:19 Aankhen`` Hi.
11:19 nnunley But i guess it would be good to try to put together a primer.
11:19 nothingmuch http://citeseer.ist.psu.edu/cis?q=administrative+normal+form&amp;submit=Search+Documents&amp;cs=1
11:19 Aankhen`` What is CiteSeer?
11:19 Aankhen`` The search engine?
11:19 Aankhen`` I see.
11:19 nothingmuch nnunley: so, what would like to do for Blondie?
11:19 Aankhen`` Don't mind me, just talking to myself.
11:19 nothingmuch hola autrijus
11:19 nothingmuch err
11:19 nothingmuch Aankhen``:
11:19 nnunley Aankhen``: ok. ;)
11:19 Aankhen`` Hi. :-)
11:20 * Aankhen`` strangles nnunley.
11:20 nnunley nothingmuch:  Good question.  What are you having problems with?
11:21 nothingmuch nnunley: nothing really, except lack of time
11:21 nnunley nothingmuch: Got it.
11:21 nothingmuch and the fact that I'm the sole author of Blondie
11:21 nothingmuch which means that i get no code level critique
11:21 nothingmuch and the truck number is high (this is dangerous with me, i tend to burn out)
11:21 * nnunley nods.
11:22 nothingmuch err, low
11:22 Aankhen`` Argh... how do I stop the Parrot bugs from being e-mailed to me?
11:22 nothingmuch Aankhen``: procmail?
11:22 Aankhen`` No, try again. :-P
11:23 Aankhen`` Oh.  Unsubscribe from p6i.
11:23 nothingmuch aha
11:23 nothingmuch http://citeseer.ist.psu.edu/flanagan93essence.html
11:23 nnunley nothingmuch:  Where is your todo document?
11:23 nothingmuch nowhere
11:23 nothingmuch i'll commit one
11:24 nnunley Good good.
11:27 nnunley Hrm.  So you have several placeholder nodes in Nodes?
11:27 nothingmuch huh?
11:28 nnunley Sorry, reading through Blondie::Nodes
11:28 nothingmuch one second, i'll figure out what you're talking about ;-)
11:29 nothingmuch what placeholders?
11:29 nothingmuch Stub is an unimplemented thunk
11:29 nothingmuch and the placeholder type is used by the type inferrencer to pass types from syms to params
11:31 nnunley Sorry, I'm probably going to make you explain it to me like I'm a 2 year old.  The Blondie nodes file's intent is to create a reasonibly direct mapping into PIL?
11:31 nothingmuch nope
11:31 nothingmuch it has nothing to do with PIL
11:31 nothingmuch the Nodes file defines the nodes of the blondie AST
11:31 nothingmuch they are documented in Blondie.pm
11:32 * nnunley rereads.
11:36 nnunley Hrm.  So why the pattern of Thunk(Stub())?
11:36 nnunley Instead of just Stub?
11:38 nnunley Hrm.  The flanagan paper is definitely pretty good.
11:39 nnunley 'Oooo.  Shiny.'
11:48 evalbot_7092 has quit IRC (Remote closed the connection)
11:48 evalbot_7093 has joined #perl6
11:49 iblechbot has joined #perl6
11:50 * nnunley prints it out.
11:51 svnbot6 r7093 | nothingmuch++ |  r8223@syeeda:  nothingmuch | 2005-09-22 14:45:34 +0300
11:51 svnbot6 r7093 | nothingmuch++ |  TODO for blondie
11:53 nnunley nothingmuch++  Thanks.
11:55 nnunley nothingmuch:  BTW, minor grammatical nit (I'm sure you'll catch me in many) -- "its" is possessive, "it's" is a contraction of "it is" or "it has"
12:00 masak what should the signature be of a function that is called like this: Getopt('a' => 'b', 'c' => 'd')?
12:00 masak There can be any number of pairs (I assume those are pairs) in the argument list.
12:09 kolibrie has joined #perl6
12:10 wwf has quit IRC ("Leaving")
12:10 azuroth has left
12:15 * nothingmuch returns
12:16 nothingmuch Thunk(Stub()) is because... errm
12:16 nothingmuch i forget
12:16 nothingmuch bottom line: because a stub thunk can take params for the purpose of type checking
12:17 nothingmuch (it doesn't right now, because this info is thrown away too early)
12:17 cognominal has quit IRC (Read error: 110 (Connection timed out))
12:17 nothingmuch and a stub is mearly something that the compiler should refuse to pass on
12:17 nothingmuch think of Stub as the '...' operator
12:17 nothingmuch you son't say 'my &foo = ...;'
12:17 nothingmuch you say 'sub foo { ... }'
12:18 nothingmuch masak: a list
12:18 nothingmuch for the getopt sig
12:18 nothingmuch *@pairs
12:19 nothingmuch hola kolibrie
12:19 kolibrie hola nothingmuch
12:20 rantanplan_ has joined #perl6
12:20 svnbot6 r7094 | nothingmuch++ | s/it's/its/
12:20 masak nm: thx
12:21 nothingmuch masak: ?
12:21 nothingmuch oh, oops
12:21 masak for the signature
12:21 nothingmuch i confused you with nnunley
12:21 masak but the answer was for me, right?
12:22 * nnunley grins.
12:22 masak nothingmuch: anyway, it didn't work :)
12:22 kolibrie so, I'm trying to port HOP make_lexer (section 8.1.3 page 374) to Perl 6
12:22 kolibrie I'm having prototype problems, I think
12:22 nothingmuch yes, it was
12:22 nothingmuch and I'm sorry ;-)
12:23 nothingmuch kolibrie: is can you link to the online code sample?
12:23 kolibrie the original?  /me looks for url
12:23 nothingmuch aye
12:23 evalbot_7093 has quit IRC (Remote closed the connection)
12:24 evalbot_7094 has joined #perl6
12:24 kolibrie http://hop.perl.plover.com/Examples/ALL/Lexer.pm
12:25 nothingmuch kolibrie: please explain in a few words roughly what it does
12:25 masak aha!
12:25 * masak discovers 'is export'
12:25 nothingmuch aha!
12:25 masak :)
12:26 masak now everything works
12:26 kolibrie the tokens subroutine expects an input iterator, and then a token definition containing label and regex
12:26 masak or rather, all my tests fail instead of not running
12:26 nothingmuch =)
12:27 nothingmuch what is a label?
12:27 kolibrie the make_lexer subroutine takes an input iterator, and a list of token definitions, and strings a bunch of calls to 'tokens' together
12:27 kolibrie the label is a string identifier
12:27 kolibrie anything you want
12:27 nothingmuch okay
12:28 nothingmuch oh, i see
12:28 nothingmuch make_lexer stacks tokenizations on top of each other
12:28 kolibrie my problem is figuring out how to prototype make_lexer, and then to appropriately pass to tokens
12:28 kolibrie correct
12:29 evalbot_7094 has quit IRC (Remote closed the connection)
12:29 evalbot_7095 has joined #perl6
12:29 kolibrie I have something like: sub tokens ($input, $label, $pattern, ?$make_token = sub { ... }) { ... }
12:29 nothingmuch sub make_lexer ($lexer is copy, *@definitions) { for @definitions -> $args ( $lexer = tokens($lexer, @$args) }; return $lexer }
12:30 nothingmuch yes, that's about right
12:30 kolibrie that looks pretty
12:31 nothingmuch oh wait
12:31 svnbot6 r7095 | iblech++ | * Usual svn props.
12:31 svnbot6 r7095 | iblech++ | * New t/var/autoref.t: $arrayref = @array, (key => @array), etc.
12:31 svnbot6 r7095 | iblech++ | * t/pugsbugs/parsing_bool.t: s/eval/try/ so other backends no capable of eval()
12:31 svnbot6 r7095 | iblech++ |   have a chance of passing this test.
12:31 nothingmuch you need to flatten *@args
12:31 nothingmuch i forgot how
12:31 nothingmuch to allow it to be positionated ;-)
12:31 nothingmuch (make an array into a list of positionals)
12:31 kolibrie S04? says *@$args
12:31 nothingmuch right
12:31 kolibrie or **@$args
12:31 nothingmuch i'd go with *@args
12:32 nothingmuch no need to steamroll
12:32 kolibrie :)
12:32 nothingmuch just explode
12:32 kolibrie does that compile for you?  I get an error
12:34 evalbot_7095 has quit IRC (Remote closed the connection)
12:34 evalbot_7096 has joined #perl6
12:36 kolibrie ah, just a s/<'('>/{/
12:36 svnbot6 r7096 | masak++ | number of tests in plan corrected in gol-linkage.t
12:39 sahadev_ has quit IRC ("Client exiting")
12:40 nothingmuch oops... sorry =)
12:41 kolibrie at least your's compiles now
12:41 kolibrie I can't remember what I had, but it kept not compiling
12:47 kolibrie ah, now I'm getting a runtime error: *** No compatible subroutine found: "&tokens"
12:48 kolibrie how is that?
12:52 nothingmuch nopaste the code?
12:52 kolibrie in feather.perl6.nl:/home/kolibrie, see Lexer.pm, and pugs extract_date.p6 test_date.txt
12:55 nothingmuch try giving tokens a prototype
12:55 nothingmuch oh wait
12:55 nothingmuch do away with the 'sub tokens { ... }'
12:55 nothingmuch i think it's confusing ppugs
12:58 kolibrie hmm. same error still
12:59 evalbot_7096 has quit IRC (Remote closed the connection)
12:59 svnbot6 r7097 | nothingmuch++ | more todo
13:00 evalbot_7097 has joined #perl6
13:02 nothingmuch ehttp://en.wikipedia.org/wiki/GENERIC # i want to compile to this after PIR
13:02 sahadev has joined #perl6
13:02 nothingmuch and also another interpreted backend
13:02 kolibrie oooh, that would be nice
13:02 nothingmuch the more backends Blondie has the more we can learn about what is the true role of an AST as high or low level as Blondie
13:03 nothingmuch and give this knowlege back to PIL
13:03 * nothingmuch is going to to a blondie interpreter in C later
13:03 nothingmuch it shouldn't be too much of a mess
13:03 sahadev has quit IRC (Client Quit)
13:04 gaal nothingmuch: re your reply to masak: we can do better and specify it's a list of pairs, no? i think the syntax is `*@list of Pair` but have no idea if it works :)
13:04 gaal rehi btw :)
13:04 nothingmuch right
13:04 nothingmuch hi ho =)
13:04 * nothingmuch leaves right about now
13:05 sahadev has joined #perl6
13:05 Aankhen`` has quit IRC ("Drive C: Error, (A)bort (R)etry (I)gnore (K)ick (S)cream [Time wasted online: 1hr 47mins 49secs]")
13:10 gaal bye nothingmuch.
13:12 fglock has joined #perl6
13:23 hexmode has joined #perl6
13:24 nothingmuch has quit IRC (Read error: 110 (Connection timed out))
13:42 xinming_Beijing has joined #perl6
13:43 nothingmuch has joined #perl6
13:45 gaal interesting idea for build speedup:
13:45 gaal # http://www.isi.edu/~hdaume/HAllInOne/
13:46 gaal creates one big file instead of many source modules
13:46 gaal doesn't support ghc extensions yet
13:47 gaal obviously, not good for when you hack on one file a lot
13:47 gaal but something to follow and possibly enable in releases one day.
13:49 khisanth_ is now known as Khisanth
13:55 autrijus nod
13:55 autrijus hi from .hk btw
13:58 xinming_Beijing autrijus: are you in a aeroplane?
14:00 autrijus no, in .hk for transit
14:02 gaal hello! :)
14:03 Khisanth you are at that giant HK airport? :)
14:05 xinming_Beijing cool... the wireless lan is really cool. :-P
14:06 gaal how long is your connection? how long is your next flight?
14:06 nothingmuch ftp://gcc.gnu.org/pub/gcc/summit/2003/GENERIC%20and%20GIMPLE.pdf
14:06 autrijus Khisanth: aye
14:07 nothingmuch autrijus: please put a note in your journal, that blondie is looking for backend ideas
14:07 nnunley nothingmuch:  I was under the impression that GENERIC wasn't exposed.
14:07 autrijus nothingmuch: you can write my journal for me in docs/journal/ :)
14:07 autrijus or you can wait for two days...
14:07 nothingmuch i want to try as many backends as possible so that we force Blondie into a reusable shape and then throw that away
14:07 nnunley nothingmuch: LLVM could be a good target.  AS would JASMIN
14:07 nothingmuch and reimplement our knowlege in PIL
14:08 autrijus nothingmuch: okay. I nominate YARV
14:08 nothingmuch nnunley: link for jasmin?
14:08 gaal the unwrapping stuff, by the way, is needing a reasonable way to handle pathnames in haskell :-(
14:08 autrijus the standin for parrot in my mind -- after clr that is
14:08 autrijus gaal: Distribution.Compat.FilePath
14:09 nnunley http://jasmin.sourceforge.net/
14:09 autrijus my flight is in 1hr
14:09 autrijus I'm finally starting to write slides
14:10 nnunley I'm sure there's a better java assembler out there, but that's the one I remember.
14:10 gaal autrijus: i'm getting errors about that being "locked", asking on #haskell
14:10 nothingmuch is YARV stack based?
14:11 nnunley nothingmuch:  Yes.
14:11 autrijus yup.
14:11 nothingmuch good
14:11 nnunley http://www.atdot.net/yarv/insnstbl.html
14:11 autrijus but has first class continuation support
14:11 nothingmuch ooh
14:12 autrijus has to, since ruby has callcc
14:13 autrijus bbiab
14:13 autrijus has quit IRC ("leaving")
14:13 autrijus has joined #perl6
14:13 autrijus back
14:14 scook0 has quit IRC ("Leaving")
14:16 SM_ax has quit IRC ("Download Gaim: http://gaim.sourceforge.net/")
14:21 kolibrie anyone want to diagnose my: *** No compatible subroutine found: "&tokens"
14:22 kolibrie on feather.perl6.nl:/home/kolibrie
14:22 joepurl has joined #perl6
14:22 broquaint has joined #perl6
14:22 kolibrie pugs extract_date.p6 test_date.txt
14:22 kolibrie fire alarm &
14:31 autrijus try to get some electricity &
14:34 justatheory has joined #perl6
14:39 svnbot6 r7098 | autrijus++ | * first few bits of CUFP talk.
14:41 evalbot_7097 has quit IRC (Remote closed the connection)
14:41 evalbot_7098 has joined #perl6
14:44 Juerd Anyone with me on the issue of interpolation and stringification resulting in different values being a bad idea?
14:45 nothingmuch yes, me
14:45 QtPlatypus Juerd: Can you give me an example?
14:48 Khisanth QtPlatypus: well $foobar1 = "foo"~$bar and $foobar2 = "foo$bar" and $foobar1 ne $foobar2 :)
14:55 nothingmuch Juerd: who's idea is it to separate the two?
14:56 evalbot_7098 has quit IRC (Remote closed the connection)
14:57 svnbot6 r7099 | nothingmuch++ | Blondie propaganda
14:57 evalbot_7099 has joined #perl6
14:57 kolibrie back
14:57 nothingmuch autrijus: journal/2005-09-22.kwdi
15:07 Juerd nothingmuch: Damian's
15:07 * nothingmuch suspects that Damian is a double agent
15:07 Juerd Message-ID: <4331DCBA.1040905@conway.org>
15:08 nothingmuch by adding insane enough semantics he will force us all to use C# eventually
15:09 Juerd So far, I have more confidence in Damian than in Larry
15:11 Khisanth is there suppose to be some advantage in making them different?
15:11 Juerd Just that they can return different values
15:12 Juerd I think that this "advantage" is a very big disadvantage.
15:12 Juerd I think ~$foo, "$foo" and $foo.as(Str) should all return the same thing
15:12 Juerd And, of course Str($foo)
15:13 * Khisanth agrees
15:13 Juerd Anyway, please do participate in the p6l discussion if you have an opinion
15:13 nothingmuch "bah $foo moose" should be a special form to make stuff into "bah " ~ ~$foo ~ "moose"
15:13 Juerd Where the unary ~ is redundant
15:13 Juerd Because binary ~ already forces Str context
15:14 * nothingmuch was only making a point
15:18 * nothingmuch still can't think of any scenario where "$foo" and "" ~ $foo ~ "" should behave differrently
15:18 nothingmuch or ~$foo for that matter
15:31 kolibrie if you want a different context, couldn't you: "" ~ +$foo ~ ""
15:31 nothingmuch yes
15:31 kolibrie so ~ should definitely always be string context, like "$foot"
15:31 kolibrie "$foo", that is
15:33 svnbot6 r7100 | stevan++ | Perl6::MetaModel 2.0 -
15:33 svnbot6 r7100 | stevan++ | * A (mostly) complete port of Perl 6 Test::Builder to the MM 2.0
15:33 svnbot6 r7100 | stevan++ |     - including tests as well
15:35 Juerd Read <4331DCBA.1040905@conway.org>, about pairs stringifying differently in string context than they interpolate
15:37 nothingmuch i disagree with that
15:37 evalbot_7099 has quit IRC (Remote closed the connection)
15:38 evalbot_7101 has joined #perl6
15:39 svnbot6 r7101 | stevan++ | Perl6::MetaModel 2.0 -
15:39 svnbot6 r7101 | stevan++ | * some minor changes to support the Test::Builder port
15:40 kolibrie if you want different interpolation semantics: "hello { +$foo } "
15:40 nothingmuch errm, what about just
15:41 nothingmuch "hello { $foo.as(...) }" ?
15:44 kolibrie that works too
15:48 evalbot_7101 has quit IRC (Remote closed the connection)
15:48 nothingmuch Juerd: i sent some protest with some heavy reasoning
15:48 nothingmuch i hope it helps
15:48 evalbot_7102 has joined #perl6
15:50 SamB has quit IRC (Read error: 110 (Connection timed out))
15:50 svnbot6 r7102 | stevan++ | - docs/journal/ -> adding information about the Test::Builder port
15:50 svnbot6 r7102 | stevan++ | - Test::Builder - fixing a bug I found while porting
15:53 saorge has joined #perl6
15:55 GoCooL has joined #perl6
15:59 expeditio has joined #perl6
16:00 expeditio hi. is this a perl help channel? if not, where is there one? thanks.
16:00 nothingmuch #perl
16:00 nothingmuch this a genera perl 6 channel
16:01 expeditio k, thnx
16:01 expeditio has left
16:06 GeJ has quit IRC ("Client exiting")
16:21 justatheory has quit IRC ()
16:38 svnbot6 r7103 | stevan++ | Perl6::MetaModel 2.0 - fixing attribute accessor and $:singleton property of Test::Builder
16:38 * nothingmuch is addicted to wikipedia
16:39 nothingmuch s/addicted/destructively addicted/
16:39 evalbot_7102 has quit IRC (Remote closed the connection)
16:39 elmex has joined #perl6
16:39 evalbot_7103 has joined #perl6
16:40 Limbic_Region has joined #perl6
16:46 xinming_Beijing has quit IRC (Client Quit)
16:51 putter has joined #perl6
16:52 putter hi all
16:52 putter briefly...
16:52 nothingmuch hi ho
16:53 putter gaal: ./pugs does not currently well support Win, as I lack that platform.  Two possibilities:
16:54 putter It is not possible to portably write a CPAN module which installs perl scripts.  That seems unlikely, but I supposed is just borderline possible.  Then unwrapping is definitely needed.
16:54 putter If it is possible, then, well, someone needs to read man MakeMaker or whatever we are using and _write it_.
16:55 putter Sorry if I was unclear.
16:56 fglock hi putter
16:56 putter Though writing the haskell infrastructure to do argument handling et al could also be done.  Seems a long way around to do it though
16:56 putter hi fglock
16:57 putter But haskellizing it does have advantages.
16:57 putter Your call.
16:57 fglock Hash is fixed now - what is the url to check the smoke test?
16:57 elmex has quit IRC ("leaving")
16:58 putter Bye all &  back ...
16:58 putter fglock:
16:58 putter http://m19s28.vlinux.de/cgi-bin/pugs-smokeserv.pl has smokes, but you have to contribute them yourself
16:59 putter unit testing is easier, just ./pugs -B perl5 -Iperl5/PIL-Run/lib6 t/whatever.t
16:59 fglock ok, thanks
17:01 putter running smoke-perl5 still requires some hoop jumping, as some tests non-terminate (a couple even with timeout set).  some may still exhaust memory unless one externally sets a memory limit.
17:02 fglock np, I'm testing specific things (not fully automated)
17:04 justatheory has joined #perl6
17:08 putter ok.  notes added to README.
17:08 svnbot6 r7104 | putter++ | PIL-Run/README: added notes on the hoop jumping currently required to run make smoke-perl5.
17:08 putter fglock: all set?
17:08 fglock yes - most things work :)
17:09 putter I'll be back in 48 hrs or so.
17:09 putter ! :)
17:09 fglock :(
17:09 evalbot_7103 has quit IRC (Remote closed the connection)
17:10 evalbot_7104 has joined #perl6
17:10 putter I noticed the most recent test had some regressions.  Haven't gotten a chance to look at it.  Both the "latest" and the "high water mark" are on the smoke serv.
17:10 fglock are there any higher priority bugs?
17:11 putter nothing comes to mind
17:12 fglock ok, I'll create some :)
17:13 dduncan has joined #perl6
17:13 putter might try the mm2 switch.  stevan said that's becoming plausible, though there may still be gaps/problems.  he was starting to explore switchover.
17:14 putter fglock++ stevan++ gaal++
17:15 putter bye all &
17:15 putter has quit IRC ("Leaving")
17:16 stevan fglock: re: putter's comments on MM2
17:16 fglock hi stevan
17:16 stevan I just commited a port of the perl 6 version of Test::Builder,.. that is probably a good place to start looking to see how things have changed
17:16 stevan hey fglock :)
17:17 * stevan is finding it really hard to concentrate on $work today
17:17 fglock :)
17:18 gaal oh, crap, just missed putter again
17:18 gaal rehi btw
17:19 stevan hey gaal
17:19 gaal stevan :)
17:19 * fglock tries to convince a debian package to install in a different dir and port
17:19 fglock hi gaal
17:20 gaal hey fglock!
17:20 * gaal fights haskell file path libs
17:20 gaal arg, anyone remember how to allow the c preprocessor in .hs source files?
17:21 gaal ah, -cpp. how simple :)
17:23 nothingmuch dum dee dum
17:25 gaal time for tea!
17:28 eric256 has joined #perl6
17:28 eric256 hola....are there any known issues with building pugs on windows?  i mean new issues...while compiling Pugs.Run  GHC crashes with an access violoation error
17:29 gaal eric256 - welcome, long time no see - you are running out of ram i think
17:29 fglock I can't build it in Windows - I get a makefile error
17:29 gaal are you using the optimized build? which run is it, first or second?
17:30 eric256 hmm could be...yea life got busy, moved to a new state then bought a house. ;) takes a bit of time and energy
17:30 gaal fglock: "can't make pugs.exe?"
17:30 eric256 unoptimized
17:30 gaal unoptimized no longer works for me on win32 when precompiling.
17:30 fglock gaal: checking the error message - will take a while to get there
17:30 eric256 hmm i can try optimized then
17:31 gaal fglock: it's the wrapping issue. create a file with that name, never mind the content
17:31 gaal fglock: when pugs builds use pugs_bin.exe
17:31 gaal "pugs" has been made a script but it causes problems. i'm working on it.
17:31 nothingmuch nnunley: ping
17:32 eric256 thast not a very friends out of memory error for GHC to throw. ;)
17:32 eric256 "NMAKE : fatal error U1073: don't know how to make 'pugs.exe'"
17:32 eric256 i'm cleanings and starting over.
17:33 nothingmuch any volunteers for blondie pair programming or coordinated hacking?
17:33 fglock gaal - this is a very slow computer, XP + antivirus + slow disk, leave only 10% CPU available, I think
17:33 nothingmuch heh
17:33 eric256 blondie? isn't that a band? ;)
17:33 fglock eric256 - same message here
17:33 nothingmuch eric256: no, it's anAST
17:34 eric256 nm: yea i know. ;)
17:34 fglock gaal - create a file with which name?
17:34 eric256 hmm. clean build same error.
17:34 nothingmuch anyone?
17:34 nothingmuch pleease?
17:35 * eric256 for one has no idea what you are even asking nm
17:35 stevan nothingmuch: what do you want to do?
17:35 eric256 fglock i did "cat test > pugs.exe" and now it seems to be building
17:35 nothingmuch the todo is long
17:35 nothingmuch make a pick
17:35 fglock nothingmuch: I'd like to, but I'm on $work now - not enough spare cicles
17:35 nothingmuch http://svn.openfoundry.org/pugs/perl5/Blondie/TODO
17:36 nothingmuch eric256: i want help on Blondie
17:36 gaal fglock, sorry, what eric256 said
17:36 gaal nothingmuch: i have my hands full
17:36 stevan nothingmuch: anything I can do which does not involve re-reading all the compiler theory books I have
17:37 fglock ah, ok - you create a new file, and then nmake ignores it
17:37 gaal fglock: yes, clever innit.
17:37 nothingmuch stevan: you've already got an advantage over me
17:37 nothingmuch if i could get this far you can help too =)
17:37 eric256 nm....just curious...but why do you want to build another AST?  this whole thing with javascript backends and all that confused me. I'm assuming there is a benefit i am just too dense to crasp un aided
17:37 eric256 ;)
17:37 nothingmuch eric256: PIL/Perl6 is too big to be rapidly prototyped on multiple backends
17:38 nothingmuch i'm trying to explore less of the what needs to be done to make a backend, and more the how it can be done
17:38 nothingmuch so Blondie is per definition minimalistic (dumb, hence the name blondie)
17:38 eric256 but why?
17:38 nothingmuch to learn
17:38 eric256 ahh... ok
17:38 nothingmuch learning with PIL is a bit too hard right now
17:38 nothingmuch but once we've learned we can backport
17:39 nothingmuch it's essentially a compilation  prototype
17:39 eric256 so its just a way for you to sharpen your skills to then attack pugs/pil/parrot/perl6 ?
17:39 nothingmuch a bit more than sharpen our skills... we're (i'm) trying to implement two ideas which are not so well explored
17:39 nnunley has quit IRC (Read error: 113 (No route to host))
17:40 nothingmuch one is a circular prelude
17:40 nothingmuch for the benefit of portability
17:40 nothingmuch and correctness
17:40 nothingmuch and the other is dynamic/static type inferrence
17:40 evalbot_7104 has quit IRC (Remote closed the connection)
17:40 svnbot6 r7105 | nothingmuch++ | s/seemless/seamless/
17:40 evalbot_7105 has joined #perl6
17:41 nothingmuch evalbot should check if system(qw/cmp pugs.new pugs.old/)
17:41 eric256 well i'd help if it wasn't entirely over my head. ;)
17:41 nothingmuch eric256: it isn't, I promise
17:41 nothingmuch i'll gladly walk you through
17:41 nothingmuch i want others involved in addition to myself
17:41 eric256 learning through teaching. ;)
17:42 eric256 freack GHC died agian...how much memory do you need!!! and why did it balloon up to where i can't manage it?
17:43 nothingmuch it needs a lot of memory
17:43 nothingmuch hundreds of MBs
17:43 eric256 didn't use to kill my machine though.
17:43 nothingmuch Pugs.Run isn't that big though... *puzzled*
17:45 eric256 i've got 350mb free when i start nmake
17:46 gaal nothingmuch: it #includes the precomp prelude
17:46 nothingmuch oi
17:46 nothingmuch heh
17:46 eric256 i'm guessing that is large?
17:46 dduncan I've found that GHC runs but slowing the whole machine down under 256M ... runs very well on a 768M machine
17:48 fglock meeting &
17:48 eric256 down to 260mb and falling. lol....240mb......230mb
17:49 eric256 so if this doesn't work i can turn of precompiled prelude and be okay?
17:49 gaal yes, but you really need the precompiled prelude :(
17:50 eric256 then i hope i freed enough memory.
17:50 gaal :223
17:50 eric256 is there any work that can be done to reduce that?  
17:50 gaal oops, wrong window
17:50 gaal not anything i know how to do :(
17:50 eric256 compile perl6 requirments....2gig of memory. ;)
17:52 eric256 so are the OO changes occuring in pugs? or is it still perl5 based modules?
17:52 gaal well eventually -CPugs output will be binary with DriFT, but we need one of the hardcode labmdaheads for that.
17:52 integral is there no possibility to serialise the prelude as perhaps binary, and then recreate the actual tree at runtime, so that GHC isn't trying to optimise all those compiler?
17:52 gaal integral: be a hardcode labmdahead! :)
17:53 eric256 just dropped below 100mb of memory and ghc "encountered a problem"
17:53 eric256 i've got the error report window up...anything in there that can help?
17:54 integral hmm, afaik all the DRiFT output stuff is working, it's just that there's nothing in place to load the stuff, right?
17:54 gaal integral: i don't know, it was all done when i was away. DriFT.Binary exists, fwiw, but i don't know if it's lossy or not.
17:56 gaal oh no, if we don't use perl5 to wrap pugs then we need to use pugs to wrap perl5 when -BJS and -BPerl5... but "exec" isn't portable
17:56 * gaal sighs
17:58 eric256 Prelude.pm doesn't seem that big.
17:59 Juerd The scary part is it being monolithic
17:59 Juerd I hope that's just a bootstrapping thing
17:59 integral perl code is a very efficient way of encoding  very big ASTs :-P
17:59 Juerd integral: Except it's hard to parse :)
18:00 * eric256 gives nmake unoptimized one last chance just for kicks
18:00 eric256 would it fit in memory better if it were broken into parts? or does the world not work that way?
18:01 elmex has joined #perl6
18:01 integral hmm, this looks like it may not be *too* difficult!
18:02 integral the actual machinery seems to be there in PIL1.hs, and Binary.hs
18:03 eric256 here we go...300mb free when it hit compile Pugs.Run for the second time...might actualy make it
18:04 eric256 isn't it odd for that to be an out of memory error when there is still 100mb show as avialable?
18:05 eric256 wow...and now 86mb and the same error....must mean its lunch time ;)
18:05 putter has joined #perl6
18:06 putter whew.  ride running late...
18:06 putter gaal: ping?
18:07 putter any windows perl usersers / CPAN contributers about?   is runperl.bat the current state of the art in perl scripts?
18:07 gaal putter! hi :)
18:07 putter hi gaal :)
18:08 gaal pugs-the-script is a pain - but i can see what pain it prevented :)
18:08 putter my hope was that someone more familiar with windows than I would do the "obvious right thing", whatever that was, to make the pugs script work there.  doesnt seem to have happened.
18:09 putter a quick google suggests  runperl.bat  might be the "state of the art".  but I have no first-hand experience.
18:09 integral bother.  the precompiled prelude isn't PIL1, it's AST
18:10 gaal putter, even if we could use runperl - which i'm not sure is the case - a wrapper would be a huge hit on smokes
18:11 putter oh, btw, I saw a "how much memory does ghc use" go buy.  I recently noticed an oddball, where some p6 code (unfortunately not easily isolatable) resulted in a practically unbounded (killed at > 1GB) memory usage.  a small (1 line) code change avoided the problem.  but this is on an old ghc development snapshot, so the experience is likely not relevant to any current problems.
18:13 putter gaal: re huge hit, really?  that seems surprising.
18:14 Juerd There exists spamming software that uses mail.domain.com to send mail to domain.com, without checking any mx record.
18:14 gaal why? you have 7000 tests, that means 7000 perl5 runtime inits
18:14 Juerd Hatefuly.
18:14 Juerd s/y//
18:15 Juerd My mx is mx1 - mail I use for customers, who authenticate
18:15 Juerd But, of course, mail accepted mail for the domain unauthenticated as well, as it's a standard qmail setup
18:15 putter On an optimized build, a 01-sanity test file which _doesnt_ use Test takes about 1sec to run at 1GHz.   running perl on the same machine is 2 or 3 orders of magnitude faster.
18:15 Juerd Now, I am manually hacking qmail to always deny relying
18:16 putter hmm, perhaps I have some aspect of perl swapped in...
18:17 gaal as you're likely to do if you run it 7k times ;-)
18:17 Juerd Fortunately, qmail is very well written and easy to hack.
18:17 Juerd Pfew.
18:17 gaal so you're saying this is noise
18:17 putter gaal: 7k times?  err, we have <500 test files...?
18:17 gaal and that i'm worrying too much about something that doesn't matter?
18:18 gaal oh, right, i was confusing tests with test files
18:18 gaal duh
18:18 gaal okay, how about...
18:18 gaal we write the wrapper in c? :)
18:19 gaal i don't know how to fix the who-gets-invoked-first problem
18:21 putter ok, with an alternate version of perl which I'm sure isnt cached, the first run took 1/10 sec.  and I imagine the .bat file game will take some time.  any idea how long the runperl.bat hook takes?  (eg, running a .bat file)
18:22 SamB has joined #perl6
18:22 gaal not sure i even have one
18:22 gaal let me look
18:22 putter Its in the perl distrib as of ... something.
18:22 putter apparently
18:23 gaal right, lessee
18:23 gaal ugh, how do you time on windows?
18:23 putter at 1/10 sec overhead, 1 min on a 1 hr smoke, its clearly not a problem.  At 1sec, it would be.  Does perl take 1sec to start up on windows?  It seems unlikely, but...
18:24 putter actually, does runperl.bat take 1 sec to start perl on windows.  there may be path searches in there...
18:25 putter gaal: re time on windows.  I have so no idea.  anyone?
18:25 dada I benchmarked something on win32
18:25 gaal runperl is a BAT hit, sometimes another CMD hit, and a perl.exe hit -- before the pugs Perl5 wrapper
18:25 gaal but i agree that performance may not be the first priority here.
18:26 putter perl -MTime::HiRes -e '... system("..."  :)
18:26 dada http://dada.perl.it/shootout/hello.html
18:26 dada putter: I've used some Win32::API trickery
18:27 gaal ew, my path contains c:\perl\bin which is where runperl.bat is, but runperl.bat refuses to run!
18:27 dada a simple "hello world" 200 times takes 6.13 secs with Perl, in contrast to 1.10 secs with a C-compiled executable
18:27 dada take it for what it is
18:28 dada (note this is the startup time for perl.exe itself, not for the .bat trick)
18:29 putter is the fs cache wiped between calls?
18:29 dada no, not really
18:29 putter gaal: apparently you rename runperl.bat to say pugs.bat which would call the pugs script
18:29 dada but you aren't going to wipe the fs cache while you're smoking, no? :-)
18:30 putter http://search.cpan.org/~nwclark/perl-5.8.7/win32/bin/runperl.pl
18:30 putter true.  I was thinking worst case.  Perhaps meaninglessly worst.
18:30 dada anyway, putter: exec() behaves like _evil_ under win32
18:31 putter as long as someone else has incanted the circle of protection, np ;)
18:31 putter err, and it doesnt leak
18:31 dada struggle to avoid it if you can
18:32 putter dada: so, is runperl.bat not the right thing?
18:32 dada I don't know exactly what it dows
18:32 dada does
18:33 dada oh, now I know
18:33 dada and it doesn't look right
18:35 dada I guess "pl2bat pugs" is better
18:37 putter the things I briefly surfed suggested runperl is the new-better thing.  no?
18:38 dada not for potentially interactive scripts like pugs
18:39 dada the fact is that exec()ing messes the I/O of the script with the I/O of the console itself
18:41 alinbsp has quit IRC ()
18:41 dada let me show you
18:42 pasteling "dada" at 85.35.33.226 pasted "bat things happen!" (48 lines, 1.4K) at http://sial.org/pbot/13253
18:42 dada after that, I have to kill the command prompt window with the X
18:42 nothingmuch has quit IRC ("leaving")
18:43 putter gaal, dada: can you guys take care of this?  either haskellize ./pugs script, or add pl2bat to Makefile.PL?  or someone?
18:44 putter err, data, does your example actually use pl2bat?
18:44 dada putter: no, it uses the pugs script, which does exec()
18:44 dada and my nick is *dada* :-)
18:44 putter oops :)
18:45 dada so, well, you're doomed anyway
18:46 gaal ...and execing from pugs is not easy too
18:46 gaal is this facade really that important, though?
18:47 gaal first of all we can unify jspugs.pl and runjs.pl
18:47 gaal haven't looked at either of them, but i'm sure it should be possible...?
18:48 gaal oh, is the importance for alternate smokes?
18:49 gaal too bad :( Also, i'm starting to run out of wakies
18:51 putter gaal: pugs_bin doesnt do much command line argument processing.  that would have to be written.  and if exec() itself doesnt work, and I cant imagine hs's exec working better than perl's (no?), then getting the js/perl5 interactive repls wont work.
18:52 putter so if exec() is broken on some (how many?) windowses, then a unified pugs interface, at least for interactive work, isnt going to fly.
18:52 gaal putter: i already wrote much of the cmdline stuff it into pugs
18:52 gaal only then i realized there was the exec problem
18:54 gaal putter: where is the unified interface used now? do we really need it? was i right that it's to make the smoke test invocations simpler?
18:54 putter It would seem unfortunate for some (how many?) broken windoeses to force the api changes.
18:55 gaal well, when the api changed it wasn't tested on windows in the first place :)
18:55 putter I'd suggest waiting until we have someone who understands perl/doze well enough to say "it effects N% of perl windows installs" or some such.  If its just that some installs are broken, then we just say "get a non-broken one".
18:56 gaal it seems to affect all windows *builds*, already.
18:56 putter exec() doesnt work on _any_ perl windows installs?   that seems inconsistent with what I've read.
18:56 gaal and (see the "don't know how to make" make error in the backlog)
18:56 gaal s/and //
18:57 putter I have to go in about 3 min.
18:57 dada putter: I'm not saying that it doesn't work. it just behaves stupidly, and AFAIK it does so on any windoze I've seen
18:58 gaal `perl -x pugs -e "say <hi>"` does not work for me, fwiw.
18:58 gaal well, it flashes a terminal
18:59 gaal nope, it doesn't work at all:
18:59 gaal `perl -x pugs -e "say <hi>; sleep 1000"` doesn't show anything either.
19:00 dada gaal: try this: perl -x pugs -e "say<hi>;"
19:00 putter perlrun.bat manpage says
19:00 putter It relies on the exec() operator, so you will need to make sure that works in your perl.
19:01 gaal dada: nope.
19:01 gaal (why would there be any difference?)
19:01 putter since the page is only for win, exec() must work on some win().
19:01 dada gaal: it works for me
19:01 putter I have go in < 3 min
19:01 dada C:\dada\pugs>perl -x pugs -e "say<hi>;"
19:01 dada C:\dada\pugs>hi
19:01 dada (sort.. of.. works)
19:02 dada putter: there is a difference between "work" and "work well like it does in Unix"
19:02 gaal putter: i don't know... i have the feeling that this should be reverted, because we don't know how to make it to work right now
19:02 gaal and it seriously breaks things.
19:02 putter dada: you might try removing the cruft at the top of pugs and replacing it with a simple #!/usr/bin/perl
19:02 dada no, it won't help
19:03 dada it doesn't, in fact
19:03 putter but experimentally trying to recover portability info, from two boxes, which is in someones brain, seems... suboptimal
19:03 gaal at least in the next 48 hours, and again if we don't figure it out for the release
19:04 dada gaal: the difference is the space in the argument
19:04 putter feel free to break PIL-Run.  never been really announced.  no sign anyone uses.  should check with iblech however to make sure he doesnt depend on it now.
19:04 gaal dada: neither workforme.
19:05 dada that's strange
19:05 gaal putter: sorry :(
19:05 dada which windows?
19:05 gaal xpsp2, native perl compiled here with vc++2003
19:05 dada same windows here, using activeperl
19:06 dada xp pro, no home edition, right?
19:06 gaal oh wait
19:06 gaal i'm blind
19:06 gaal sorry!
19:06 dada hehee
19:06 * putter wonders "is windows really that broken?", or do we just lack the experience.
19:06 dada the "hi" is on the prompt line?
19:07 gaal dada: it only works *sometimes* though. there must be a race condition?
19:07 dada no, I get consistently "hi" on the next prompt
19:07 gaal ah, no, there it is: you're right, the spaces are what break it
19:07 putter eep. bye
19:07 putter &
19:08 putter has quit IRC ("Leaving")
19:08 * gaal is too tired to hack, unfortunately
19:08 * dada is going home too
19:14 * eric256 returns from lunch.
19:14 eric256 now to remember how to stop precompliing prelude
19:15 dada bye
19:15 dada has quit IRC ("ahoy!")
19:19 * eric256 considers maybe he should just use a feather accoutn to play with pugs and forget compiling it on windows
19:20 eric256 dunno if anyone is still around.....finaly got it to compile by changing my configy.yaml to no precompile prelude...in the past when you then ran pugs it would say "loading prelude" but now it doesn't...should i be concerned?
19:22 masak i also have a late-night question: does $^W still exist in perl6?
19:25 eric256 could setting the ghc_heap_size too large in config.yml make a big difference? is
19:27 gaal eric256: it doesn't load the prelude because it has no prelude. maybe we need to revive the inlined source prelude as an interim measure.
19:28 gaal masak: no, but you'll have 'use warnings'
19:28 gaal eric256: try making do with pugs -MPrelude
19:28 eric256 i'm sorry gaal i think i missed something there. what is Perlude.pm then?
19:28 gaal eric256: you need to copy it to your @*INC first though
19:29 gaal eric256: it's just a file that isn't automatically loaded
19:29 eric256 ohh i think i see...well i changed the GHC heap size, maybe it'll compile now..i had it set at 320mb
19:29 gaal it used to be inlined into the pugs image as source code, and evalled at runtime
19:29 eric256 didn't it use to load that for you if you didnt' compile it in?
19:29 eric256 ahh
19:29 eric256 gotcha.
19:30 eric256 thanks
19:30 eric256 out of curiosity...why did they stop doing that?
19:30 gaal i forget, do you do haskell? i think we left some of the mechanism for this in, but commented out: if you want to do it, go ahead
19:30 gaal eric256: there used to be no need: precompiling worked for everyone.
19:31 eric256 i know no haskel....unfortunatly, and i'm not sure i have the strength to learn it right now. ;)
19:31 gaal and we wanted to avoid bloat.
19:31 eric256 gotcha. the heap size change seems to be working...its at least getting farther
19:31 gaal Run on the second pass is the critical step.
19:32 eric256 yea. i spoke too soon.
19:32 Khisanth has quit IRC (Read error: 104 (Connection reset by peer))
19:32 eric256 its realy annoying to have a program crash when you are out of memory...seems rude. ;)
19:33 gaal well, this is me for tonight. things are messy but i'm not focused enough to fix anything :-(
19:33 gaal see ya tomorrow &
19:33 eric256 later
19:33 eric256 has left
19:35 alinbsp has joined #perl6
19:37 alinbsp has left
19:42 eric256 has joined #perl6
19:52 eric256 hmmm....are we positive that its a memory issue i'm having? could it be an bad version of GHC or something else?  I'm never getting withni 50mb of being out of memory, unless its trying to allocate a huge chucnk just all the sudden that doesn't seem like the right condition for running out of memory
19:54 * eric256 's computer looks like a NASA launch controlloer...scrolling text in one window and two sets of graphs constantly changing...jsut makes you feel important. LOL ;)
19:59 geoffb hello, all
19:59 eric256 hey
20:10 pdcawley has joined #perl6
20:11 Khisanth has joined #perl6
20:27 * eric256 crosses his fingers and tries to complie with GHC 6.4.1
20:30 eric256 arg
20:30 Limbic_Region has quit IRC ("tiuq\")
20:57 dduncan has quit IRC ()
20:59 eric256 "ghc.exe: internal error: update_fwd: unknown/strange object  0"
21:05 iblechbot has quit IRC (Connection timed out)
21:07 kolibrie has quit IRC ("leaving")
21:16 putter has joined #perl6
21:16 putter hi.
21:16 fglock hi
21:16 svnbot6 r7106 | putter++ | pugs: Attempt to placate windows.  Created pugs.bat with perl 5.9's pl2bat.  ./pugs now uses system() rather than exec() on windows.  Hopefully that will permit interactive ./pugs.  This may all be scrapped for a haskell-only implementation.
21:17 putter could someone on windows try running "perl -x ./pugs", with either the pugs from r7106, or an older one with exec() changed to system()?
21:18 fglock sorry, I just recompiled - and I've moved the files around in order to make it work
21:19 putter Err, ideally first checking that the version with exec() is _not_ working for you.
21:20 putter fglock: the key question is whether   perl -e 'system("pugs_bin")'   works, even when perl -e 'exec("pugs_bin")'  doesnt
21:20 evalbot_7105 has quit IRC (Remote closed the connection)
21:20 putter hmm.. and I think those two commands are a sufficient test.
21:20 fglock testing
21:20 evalbot_7106 has joined #perl6
21:20 eric256 i would but sadly i can't get a compile....and now i'm getting that last error i posted..;(
21:20 * putter backlogs
21:21 fglock putter: both work for me
21:22 putter oh, drat.
21:22 putter fglock: you used the resulting interactive pugs and everything was fine?
21:22 putter is there anyone online for whom  perl -e 'exec("pugs_bin")'  doesn't work?
21:23 putter dada. gaal: when you get a chance, please try    perl -e 'exec("pugs_bin")'  and   perl -e 'system("pugs_bin")'.  hopefully the first will have the problems you encountered, and the second wont.
21:24 putter eric256: what cpu and version of ghc?
21:25 fglock putter: my .pl files are associated with the editor - so pugs -BPerl5 opens crude_repl.pl in the editor :)
21:25 putter oh.. well, that's a separate problem...  but the normal pugs interactive works?
21:25 fglock yes, it does
21:26 fglock version 7086
21:26 putter on both exec() and system()?    dada/gaal reported seeing what looked like a mix of command shell and pugs output.
21:26 eric256 6.4.1 on a Windows XP Pro SP 2 with a Pentium 4 2.4GH and 504mb ram
21:27 putter apparently exec() is broken on some windows boxes but not on others.  need someone with a broken one to tell me if replacing it with system() works, or whether they are both busted.
21:27 fglock oops - yes, I see it - it looks like it has forked a new process, and both are reading from the windows terminal
21:27 fglock cmd.exe + pugs.exe
21:27 putter fglock: is that with system() too?
21:28 fglock testing again
21:28 putter eric256: has 6.4.1 been released?  if you have an old snapshot, especially an unstable one, you might try a new one.
21:28 fglock system works, exec has this problem
21:29 putter whoot.
21:29 eric256 just downloaded it today
21:29 putter ok.  so, hypothetically, r7106 should work under windows.
21:29 eric256 because 6.4 was giving me the same problem
21:29 putter eric256: oh, drat.
21:30 eric256 your telling me. lol
21:30 evalbot_7106 has quit IRC (Remote closed the connection)
21:30 evalbot_7107 has joined #perl6
21:31 putter fglock: could you try pugs.bat from r7106?
21:31 fglock ok
21:31 putter (note that  r7106 touched Makefile.PL... just in case that's a problem for you)
21:32 putter eric256: did you check ghc bugzilla?
21:32 svnbot6 r7107 | stevan++ | Perl6::MetaModel 2.0 -
21:32 svnbot6 r7107 | stevan++ | * Test::Builder port now takes case of loading paths for @INC
21:32 svnbot6 r7107 | stevan++ |     - (it makes running the tests easier)
21:32 svnbot6 r7107 | stevan++ | * removed calls to resolve() in Shapes example, they are not needed anymore
21:32 svnbot6 r7107 | stevan++ | * 32_parameterized_classes.t now calls does() as well as isa() to check types
21:32 svnbot6 r7107 | stevan++ |   to make chromatic happy ;)
21:32 svnbot6 r7107 | stevan++ | * added new 33_BUILD.t test to check attribute handling
21:32 svnbot6 r7107 | stevan++ | * added another parameterized classes test to test things like:
21:32 svnbot6 r7107 | stevan++ |     - Array of Array of Int
21:33 eric256 no. i was busy with realy work. lol. keep hoping i'll get just the right combination of settings...but i am about out of hope..
21:34 putter the ghc folks actively maintain and lookat and fix problems in bug manager.  there's a link off the ghc homepage.
21:36 putter if it's not a known problem, lets help the ghc folks out by reporting it.  I seen quick turnaround.  and it would be nice to have 6.4.1 robust enough to run pugs without problem, thus escaping from the "to run pugs, ... big involved cruft re ghc ..."  to a simple "ghc 6.4.1 required and sufficient".
21:36 eric256 i;ll check it out
21:37 fglock putter: the new pugs.bat works - it gives an error message ("No such file or directory at pugs.bat line 53") when pugs_bin terminates
21:38 putter works... as in you can interactively use pugs_bin?
21:38 fglock yes - note that the line number is for pl2bat'ed version
21:39 putter oops, doh.  I left the post-exec() die outside the if(win){system}else{exec}  fixing...
21:47 putter fglock: ok, hopefully fixed.
21:48 putter hmm... or... I don't think I really understand the error message.  could you try the new version?
21:50 G2 has joined #perl6
21:50 svnbot6 r7108 | putter++ | pugs.bat: corrected bogus error message.  fglock++
21:50 fglock testing
21:51 evalbot_7107 has quit IRC (Remote closed the connection)
21:51 evalbot_7108 has joined #perl6
21:51 fglock ok - the error is gone :)
21:51 putter so... it's all working... ????!???
21:53 fglock let me try with system($0,$bin,...) - this might fix the crude-to-editor problem
21:53 nothingmuch has joined #perl6
21:54 nothingmuch TSa is making me tired
21:56 evalbot_7108 has quit IRC (Remote closed the connection)
21:56 svnbot6 r7109 | putter++ | pugs.bat: improved error checking/reporting
21:56 evalbot_7109 has joined #perl6
22:02 fglock putter: I will probably need to use findbin to get 'perl.exe' before crude_repl.pl in the system() call
22:02 nothingmuch MEANADJ-->FURLIKE on the BODYLOCATION
22:02 nothingmuch from http://search.cpan.org/src/MSCHWERN/Bone-Easy-0.04/lib/Bone/Easy/Rules.pm
22:03 nothingmuch QUESTION-->do you have a sister who isn't so MEANADJ
22:04 nothingmuch COITUS-->give my FURLIKE dog AILMENT
22:04 nothingmuch AILMENT-->ADJ lovin'
22:04 nothingmuch ADJ-->retarded
22:04 nothingmuch give my hairy dog retarted loving
22:05 putter fglock: from brief and superficial scan of windows perl literature (eg, man perlwin32), it seems the usual thing to do is have .pl (hmm... bleeding on keyboard... where did that come from...?)  configured for execution, rather that editing...
22:06 fglock PxPerl asks what you want to do on installation - and I usually edit programs more often than I execute :)
22:06 fglock just adding 'perl' works for me
22:07 fglock it shouldn't hurt, since most people have perl in the path
22:07 putter gaal: so using system() rather than exec() may work in the haskell version too.
22:08 fglock "pugs.bat -Cperl5" is working fine now
22:09 putter what about pugs  -Cperl5  , no .bat
22:09 hexmode has quit IRC (Remote closed the connection)
22:09 fglock after "rm pugs.exe" - it works fine
22:11 eric256 has left
22:11 fglock oops - it is not compiling the lines: I get "Unrecognized char \x90 at ...\pugs_bin.exe line 1."
22:11 putter gaal: the currently contemplated "work around foo.pl triggering editor" hoop jumping is the kind of thing I thought might go more easily in pl than hs...
22:12 putter but it has its own disadds.  might be worth doing a tradeoff list
22:14 putter err, what?
22:14 fglock the error is cause by something like "perl pugs_bin.exe" - but I have no idea why this is happening - is it because I "fixed" pugs.bat?
22:15 putter oh, you tried just putting in perl to the system call...?  no, it also system()'s pugs_bin...
22:17 putter you would have to do something like  unshift(@args,"perl") if $bin =~ /\.pl$/;
22:17 fglock ok
22:19 putter when PxPerl asked edit-or-exec, did it give a default?
22:19 * putter womders just how common this case is...
22:20 fglock I don't remember - but I think it recommended the editor - I find it safer this way (if I want to make it executable, I can make a PAR or bat)
22:20 fglock cool - it works now
22:21 fglock (that's because I almost always call perl programs from the command line)
22:22 fglock (and edit using double-click)
22:26 putter hows this
22:26 putter    my(@args)=($bin, split($v, $_));
22:26 putter    # PxPerl is said to give a choice, at installation, of the .pl suffix
22:26 putter    # triggering either execution, or an editor.  This works around that.
22:26 putter    unshift(@args,$^X) if $bin =~ /\.pl$/;
22:26 putter    # exec() is broken on some windows.  Interactive use of pugs_bin gets
22:27 putter    # command interpreter output mixed in.  So we use system().
22:27 putter    if( system(@args) == 0 ) {
22:27 putter ?
22:28 fglock ok (windows only, maybe) - it is nice to comment why you are doing that
22:29 fglock time to leave! bye &
22:30 putter &
22:30 fglock has left "Fui embora"
22:30 putter thanks for your help
22:31 putter yet more that wouldnt have gotten done without it
22:42 evalbot_7109 has quit IRC (Remote closed the connection)
22:42 evalbot_7110 has joined #perl6
22:44 svnbot6 r7110 | putter++ | pugs.bat: invoke $^X explicitly when calling .pl helpers, to avoid .pl suffix configuration issues.  The pugs-as-a-script should now be working correctly on Windows.  gaal++ dada++ fglock++ et.al.
22:44 nothingmuch wow
22:45 nothingmuch if i was a superhero i'd call myself aqualad
22:45 nothingmuch http://en.wikipedia.org/wiki/Aqualad
22:45 putter nothingmuch: TSa?
22:45 nothingmuch tomas sandlass
22:46 * nothingmuch didn't understand a word from his previous email
22:46 putter wikipedia... Encyclopedia Galactica in the making...
22:46 Khisanth the number of people in that group seems to be growing :)
22:47 nothingmuch Khisanth: it's not that it went right over my head
22:47 nothingmuch i didn't understand the sentance structures
22:47 * nothingmuch is probably too tired
22:47 Khisanth I already guessed that! :)
22:51 pasteling "putter" at 66.30.119.55 pasted "a non-executable quick experiment" (2176 lines, 62.7K) at http://sial.org/pbot/13260
22:53 putter fglock, stevan: as a quick experimental hack last night, I explored what a "entire pilrun prelude in one file, in source-filtered psuedo-p6" would look like.
22:54 putter the motivation was
22:54 GoCooL has left "Leaving"
22:56 G2 When's Perl6 out? ;-)
22:56 * G2 ducks
22:56 putter the right  thing would be to use real p6, and a :p5 trait, so one has method foo () :p5 { q! ... ! }.  but without pil2, pugs just isnt up to it.  so the idea was to source filter psuedo-p6, extracting from it the equivalent of Perl6::Value/Container, PrimP5.pm, and PrimP6.pm.
22:57 G2 has left "See you all tomorrow."
22:57 putter I was hoping the p6 would be sufficiently less verbose than explicit p5 metamodel that things would be come notably smaller and more manageable.
22:58 putter It basically worked for the mm parts,  but I didnt realize how much pure p5 code was in P6::V/C.  It looked like there was some posibility of compressing that aswell, but I didnt try.
23:00 putter The core idea was to move everthing into one place/(terse)form, where one could see and work with the whole thing.  I'm not sure if it's a win or not.
23:01 putter Regardless, comments would be welcome on the type hierarchy at the top.  We'll need to implement that regardless of form.
23:02 putter any thoughts?
23:03 putter If one were to pursue the idea for real, the pasted file probably shouldnt be used as a basis.  I played a bit fast-and-loose with the conversion.  Just wanted to see roughly what it would look like.
23:06 putter G2: unclear.  speed of progress has varied a great deal.  in part based on how much of autrijus's time we get.  but we weren't able to dig up $3k/mo, so he's now at best part time.  at one point I thought something plausible could be running by end of year.  now it's less clear - timing is now more a social/economic issue than a technical one.
23:07 putter s/in part based/in large part based/
23:08 joao has joined #perl6
23:09 joao Hi
23:09 putter hello
23:10 joao my @array = ("a","b"); $last_index = @array.last; print $last_index;  -> this should work, or am I mistaken?
23:11 putter ?eval my @array = ("a","b"); $last_index = @array.last;  $last_index
23:11 evalbot_7110 Error: Undeclared variable: "$last_index"
23:11 joao sorry
23:11 putter ?eval my @array = ("a","b"); my $last_index = @array.last;  $last_index
23:11 joao I forgot the my :)
23:11 evalbot_7110 Error: cannot last() outside a loop
23:11 putter ?eval my @array = ("a","b"); my $last_index = @array;  $last_index
23:11 evalbot_7110 ['a', 'b']
23:11 putter ?eval my @array = ("a","b"); my $last_index = +@array;  $last_index
23:11 evalbot_7110 \2
23:11 joao well, I'm reading "Perl 6 and Parrot" and they give the @array.last example
23:12 joao saying that it gives the highest index in an array
23:13 joao putter, can you explain me, please? :)
23:13 putter Two posibilities - the language continues to evolve, so the book is already significantly out of date; and pugs is not a complete implementation of p6 yet.  I'm pretty sure this is an example of the first case.
23:13 joao Oh
23:14 rantanplan_ has quit IRC (Remote closed the connection)
23:14 joao ?eval my @array = ("a","b"); my $size = @array.elems; $size
23:14 evalbot_7110 \2
23:15 putter hmm... anyone want to write a "book compatibility" module?    method last (Array @self:) { +@self }  etc...
23:15 putter oh, yes, there is that.  better.
23:15 Khisanth has quit IRC (Read error: 110 (Connection timed out))
23:15 joao nothingmuch, it's different
23:15 joao elems give the number of elements
23:16 putter yes
23:16 joao last should give elems-1
23:16 joao :)
23:16 nothingmuch huh?
23:16 joao the last index?
23:16 putter "Perl 6 and Parrot" apparently speaks of a .last method on arrays, equivalent to p5 $#array
23:17 joao yaps
23:17 joao page 26 O:)
23:17 joao $#array gives the number of elements or the last index?
23:18 putter I'm off.  Be back in 40 hrs or so.  Cheers.  Thanks again to gaal, dada, fglock, etal for their help.
23:18 putter joao: in perl5, yes.
23:19 joao putter, thank you
23:19 putter err, yes, last index.
23:19 joao yes, I've checked :)
23:19 buu joao: Last index.
23:19 buu Note that $#! is illegal!
23:19 buu But @! isn't.
23:19 buu The mind boggles.
23:20 joao What other methods do arrays have?
23:21 putter So, I believe the recipe for pugs svn up and build, is... first delete "pugs" and "pugs.exe", and then everything should work.
23:21 putter bye all &
23:21 putter has quit IRC ("Leaving")
23:28 joao ?eval :1(2)
23:28 evalbot_7110 ('1' => 2)
23:28 joao ?eval :1('a')
23:28 evalbot_7110 ('1' => 'a')
23:28 joao ;)
23:30 justatheory has quit IRC ()
23:31 kolibrie has joined #perl6
23:32 QtPlatypus ?eval (1=>2) => (3 => 4)
23:32 evalbot_7110 ((1 => 2) => (3 => 4))
23:33 joao hmmm :: ((Int,Int),(Int,Int))
23:33 joao Pair of pairs?
23:33 joao ?eval :1(2) => 1(2)
23:33 evalbot_7110 Error: cannot cast from VInt 1 to Pugs.AST.Internals.VCode (VCode)
23:33 joao ?eval :1(2) => :1(2)
23:33 evalbot_7110 (('1' => 2) => ('1' => 2))
23:34 joao :key(value) <- key can't be int?
23:34 joepurl has quit IRC (Read error: 110 (Connection timed out))
23:45 QtPlatypus ?eval ('root' => ('left of root' => ('Leftmost leaf') => ("Middle leaf)) => ( ('Right of node')=> ('Middle leaf') => ('Rightmost leaf') )
23:45 evalbot_7110 Error:  unexpected "M" expecting block, "\\", "$!", "$/", "$" or "\""
23:46 QtPlatypus ?eval ('root' => ('left of root' => ('Leftmost leaf') => ("Middle leaf")) => ( ('Right of node')=> ('Middle leaf') => ('Rightmost leaf') )
23:46 evalbot_7110 Error:  unexpected end of input expecting term postfix, operator, ">>=><<", "\187=>\171", "=>", "::=", "**=", "xx=", "||=", "&&=", "//=", "^^=", "+&=", "+|=", "+^=", "~&=", "~|=", "~^=", "?|=", "?^=", ":=", "~=", "+=", "-=", "*=", "/=", "%=", "x=", "Y=", "\165=", "|=", "^=", "&=", "=" or ")"
23:46 QtPlatypus ?eval ('root' => ('left of root' => ('Leftmost leaf') => ("Middle leaf")) => ( ('Right of node')=> ('Middle leaf') => ('Rightmost leaf') ))
23:46 evalbot_7110 ('root' => (('left of root' => ('Leftmost leaf' => 'Middle leaf')) => ('Right of node' => ('Middle leaf' => 'Rightmost leaf'))))
23:47 joao has quit IRC ("gtg")
23:48 kolibrie I'm having prototyping problems
23:48 kolibrie I have a subroutine that I can call normally like this:
23:48 kolibrie my $lexer = tokens($input, 'date', rx /(\d\d\d\d)/)
23:49 kolibrie with a prototype like this:
23:49 kolibrie sub tokens ($input, $label, $pattern, ?$maketoken = sub ($label, $value) { [$label, $value] }) { ... }
23:49 kolibrie and that works great
23:50 kolibrie when I try to call that subroutine from somewhere else, like this:
23:50 kolibrie $lexer = tokens($lexer, *@$args)
23:50 kolibrie then the subroutine is not found
23:50 elmex has quit IRC ("ok")
23:51 kolibrie *** No compatible subroutine found: "&tokens"
23:51 kolibrie if I add an asterix in the prototype before the first two args
23:52 kolibrie the subroutine is found, but the code ref is an undefined scalar
23:52 wilx` has joined #perl6
23:53 kolibrie any ideas?

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

Perl 6 | Reference Documentation | Rakudo