Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2007-03-13

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:32 avar audreyt: http://sial.org/pbot/23458
00:32 lambdabot Title: Paste #23458 from Someone at 85.197.228.236
00:32 * avar sleep finish this tomorrow &
00:32 avar but everything there works now except ->captures( sub {} ); and ->named_captures, just some leg work:)
00:46 nipotaway is now known as nipotan
01:19 amnesiac joined perl6
01:27 diakopter left perl6
01:27 diakopter joined perl6
01:47 weinig|bbl is now known as weinig
02:14 dolmans joined perl6
02:39 offby1` joined perl6
02:42 offby1` is now known as offby1
03:07 nipotan is now known as nipotaway
03:10 nipotaway is now known as nipotan
03:18 nipotan left perl6
03:22 nipotan joined perl6
03:27 nipotan is now known as nipotaway
03:28 nipotaway is now known as nipotan
03:33 amnesiac joined perl6
03:40 fridim joined perl6
03:47 justatheory joined perl6
04:06 Schwern joined perl6
04:22 amnesiac joined perl6
04:26 nipotan is now known as nipotaway
04:30 nipotaway is now known as nipotan
04:51 mjk joined perl6
04:53 amnesiac joined perl6
05:08 Debolaz2 joined perl6
05:11 mj41 joined perl6
05:11 ayrnieu joined perl6
05:11 rashakil_ joined perl6
05:11 cognominal joined perl6
05:11 scw joined perl6
05:11 ruz joined perl6
05:11 cj joined perl6
05:11 sri_ joined perl6
05:11 integral joined perl6
05:11 lambdabot joined perl6
05:11 pjcj_ joined perl6
05:11 ludwig- joined perl6
05:11 masak joined perl6
05:35 REPLeffect joined perl6
06:12 |mjk| joined perl6
06:14 BooK joined perl6
06:16 H0LE joined perl6
06:59 breakeven joined perl6
07:07 REPLeffect left perl6
07:18 gaal rehi
07:32 gaal :($x)        :+:  :($x, $y?)           = :($x), or :($x, $y?) ?
07:40 svnbot6 r15672 | gaal++ | * SigMonoid: some more presumptions for review
07:52 audreyt gaal: the latter
07:52 lambdabot audreyt: You have 1 new message. '/msg lambdabot @messages' to read it.
07:52 audreyt gaal: if it's :($x), \(1,2) would bind to it
07:53 audreyt that violates the property that no-bind-to-unify equals to no-bind-to-orig
07:53 audreyt @moosages
07:53 lambdabot Limbic_Region said 8h 31m 27s ago: Win32 is no longer hanging on smoke - this means the changes have either fixed the problem or resulted in the hanging test failing prior to the hang
07:56 gaal property = no-bind-to-unify => no-bind-to-either-of-orig yes?
07:56 audreyt aye
07:56 gaal k
07:56 gaal where are you planning on using this monoid?
07:57 audreyt autogeneration of multi variants
07:58 audreyt er, of protos, from multi variants
07:58 audreyt multi f ($x) {}; multi f ($x, $y) {}
07:58 audreyt f(=<>); # this ought to parse as Item, not as List context
07:59 gaal *nod*
07:59 audreyt also, if a proto is already present, a multi must unify to it
07:59 audreyt if a multi unifies with proto into sigWhatever, it's rejected
07:59 audreyt (unless of course the proto is already sigWhatever)
07:59 audreyt so it's used in these two cases
07:59 audreyt which is critical to the new multi dispatch code
07:59 gaal so defaults are really not important, are they?
07:59 audreyt because that lets us eliminate the microinferencer
08:00 audreyt right. only the names are
08:00 gaal $x = 42 is really quiv to $x?
08:00 gaal k
08:00 geoffb joined perl6
08:01 geoffb What is the perl 6 equivalent of local $/ = '' in Perl 5?
08:01 gaal hehe, multis with explicit sigWhatever protos are for funky business
08:01 audreyt to expand on the microinferencer idea: currently in P.Eval.Var
08:01 audreyt multis dispatch using inferExpType
08:01 audreyt which is thoroughly bogus
08:01 audreyt because that way we can never deal with constraints
08:01 audreyt variants should dispatch using CaptVal not CaptExp
08:02 audreyt however, that requires a previous reduction from CaptExp to CaptVal
08:02 audreyt which requires context info for each item in CaptExp
08:02 audreyt so we provide that info from the unified proto
08:02 iblechbot joined perl6
08:02 audreyt the spec used to say that evaluate with List context no matter what
08:02 audreyt but that is also bogus
08:02 audreyt because in the &f example above, =<> would read all lines, and bind the List to $x
08:03 audreyt which cannot be what the user wants.
08:03 audreyt geoffb: paragraph mode?
08:03 geoffb audreyt: yeah
08:04 geoffb I'm trying to convert a relatively short sub to perl 6, but it's very coloquial P5, so slow going at the moment
08:05 ayrnieu curiously, why doesn't pugs use PGE to parse perl6?
08:05 audreyt ayrnieu: because STD.pm isn't yet very complete :)
08:06 audreyt also, if STD.pm is complete, PCR, YaRE, or some other engine written in perl 5 has proven to be more stable when running in embedded mode than PGE.
08:06 svnbot6 r15673 | gaal++ | * SigMonoid: audreyt++ points out that
08:06 svnbot6 r15673 | gaal++ |   :($x)  :+:  :($x, $y?)  = :($x, $y?),    and not :($x)
08:07 audreyt ayrnieu: if parrot embedding becomes stable/easy/nonleaky/etc in the future -- say Parrot 1.0 -- then we may revise that decision
08:07 geoffb audreyt: any idea how to do paragraph mode input, or do I need to fake it?
08:07 audreyt (embedded PGE used to be a _real_ pain.)
08:08 audreyt geoffb: .split(/\s+/) for now I'm afraid
08:08 ayrnieu ah, thanks.
08:09 geoffb audreyt: ok, thanks.  At least I'm not blind for missing the relevant code.  ;-)
08:09 H0LE left perl6
08:10 audreyt geoffb: it's even nonspecced :)
08:10 audreyt but it'll be per-fh anyway.
08:11 geoffb audreyt: heh
08:11 geoffb audreyt: fair enough
08:20 ozo_ joined perl6
08:24 geoffb Where would I find the tests for 'tr'?  There are a LOT of copies of those two letters in the t/ tree ...
08:24 gaal t/builtings/strings/trans.t
08:25 CardinalNumber joined perl6
08:25 geoffb Ah, thanks gaal
08:26 gaal :)
08:26 geoffb That was beginning to drive me batty
08:26 gaal audreyt: and this one's bogus too, right?
08:26 gaal  :($x, $y)    :+:  :($x?, $z?)          = :($x?)
08:26 gaal should be incompat?
08:27 gaal now, :($x?) :+: :($y?) is also incompat isn't it
08:27 audreyt not really
08:28 audreyt that can unify to :($?, :$x, :$y)
08:28 gaal hmmmmmmmm
08:29 audreyt similarily, the one above can unify to ($?, $?, :$x, :$y, :$z)
08:29 audreyt you can think of it this way
08:29 audreyt "for each position, is there a context/type constraint that all variants agree of"
08:29 audreyt "for each name, ditto"
08:30 audreyt and optional vs required can unify to optional
08:30 gaal well, in these cases we've see pos relegated to named
08:30 audreyt note that it is entirely okay for unified sig to successfully evaluate+bind, but no variants ends up agreeing
08:31 audreyt correct
08:31 gaal you mean no existing multi to agree? sure
08:31 audreyt we are not actually binding anything in the protobind
08:31 gaal yeah
08:31 audreyt so it's just for reduction
08:31 audreyt so relegate to named doesn't quite matter here
08:31 audreyt there is no actual $x allocated
08:32 gaal well positionals have, well, a position constraint
08:32 audreyt sure but note that in :($x, $y) it's okay to bind it to \(1, y=>2)
08:32 gaal which is only maintained if both input sigs have it required
08:33 gaal sure
08:33 audreyt yup.
08:33 gaal I think CS PhDs are missing the part of their brain that aches.
08:34 audreyt yeah, they underwent robotomy long ago
08:40 svnbot6 r15674 | gaal++ | * SigMonoid: two examples of relegate-to-named and $?-introduction,
08:40 svnbot6 r15674 | gaal++ |   courtesy of audreyt++.
08:41 gaal :($x)  :+:  :($x?)  = :($x?) is correct, but is it reasonable to unify to :($?, :$x) to avoid peeking at remaining positionals?
08:42 gaal in light of the recent
08:42 gaal :($x, $y)    :+:  :($x?, $z?)          = :($?, $?, :$x, :$y, :$z)
08:42 gaal which starts out similarly.
08:42 the_dormant joined perl6
08:42 audreyt sure
08:43 audreyt it's isomorphic, so go for consistency
08:43 gaal IIUC, the worst that could happen is more confusing error messages, eventually
08:44 gaal is it isomorphic?
08:44 audreyt well, not for the \(1, x=>1) case
08:44 audreyt although there's something to be said if it can be taken to mean
08:44 audreyt \(x=>1, x=>1)
08:44 audreyt dunno. that part is unspec.
08:44 audreyt if it an be taken to mean that, then yes it's iso
08:45 gaal in which case, cool, because a sig simplifier can be applied later. :)
08:46 audreyt TimToady: cool on (sub f ($x) {...}) accepting f(1, x=>1) the same way it accepts f(x=>1, x=>1)?
08:47 audreyt my take on the positional foo is that it advertises additional names
08:47 audreyt eg
08:47 audreyt sub f ($x)
08:47 audreyt is really
08:47 audreyt sub f (:0($x)) # conceptually
08:48 audreyt and \(1,2,3) binds as \(:0(1) :1(2) :2(3)) # again conceptually, not real syntax
08:55 sili perl is hard. let's go shopping
08:55 gaal :($x) :+: :() = :($x) -- poslist runoff?
08:56 gaal oh, no of course
08:57 gaal => :($x?) though maybe
08:57 audreyt aye, or :($?, :$x) as described
08:58 gaal much easier to implement
08:58 gaal ok
08:58 audreyt (0=>$, x=>$) vs () is of course (0=>$?, x=>$?)
08:58 audreyt much easier if you think of it that way
08:59 audreyt I'll bbiab, and maybe back with some more quickchecks :)
08:59 audreyt quickcheck++ # high-value properties
09:00 shay|p6 hello
09:01 gaal hi
09:01 shay|p6 gaal: what's up?
09:02 geoffb What does this error mean:
09:02 gaal working on a small type inferencer. hard. :)
09:02 geoffb pugs> eval("pack 'B*', '101'", :lang<perl5>)
09:02 geoffb decodeUTF8': bad data: '\160'
09:02 geoffb " "
09:02 audreyt it means that we don't have a native Buf object type, yay
09:02 audreyt add it to t/perl5/?
09:02 geoffb oh
09:03 geoffb zagnuts
09:03 audreyt it's a trivial fix actually
09:03 audreyt so add a test I'll make it pass
09:03 audreyt (thanks to MO bridge)
09:03 geoffb hold on
09:03 geoffb will do, I mean
09:03 audreyt :D
09:06 gaal  :($x, $y)    :+:  :($y, $x)            = fail "incompat" just like :($x) :+: :($y), but:
09:07 gaal  :($x?, $y?)  :+:  :($y?, $x?)          = :($?, $?, :$x, :$y)
09:07 gaal right?
09:08 audreyt well actually...
09:08 gaal uh oh :)
09:08 audreyt :(Int $x, Int $y) :+: :(Str $y, Str $x) # \(1,1) can bind just fine
09:08 * audreyt ponders
09:09 audreyt maybe we really go the laxest route?
09:09 audreyt i.e. :($x, $y) and :($y, $x) unify to :($, $, x=>$, y=>$)
09:09 audreyt I think it's saner in fact.
09:13 gaal okay...
09:14 mj41 How Open Source Projects Survive Poisonous People (And You Can Too) http://video.google.nl/videoplay?docid=-4216011961522818645
09:14 lambdabot Title: How Open Source Projects Survive Poisonous People (And You Can Too) - Google Vid ...
09:15 gaal heh, negative docid.
09:15 audreyt overflow, evidently
09:15 geoffb GRRRRRR
09:16 gaal ETOOMUCHPOISON
09:16 geoffb OK, svk wants me to re-authenticate myself for each couple of change sets.  WTF?
09:16 audreyt geoffb: it's fixed (actually not really added Buf methods)
09:16 audreyt but should work for now
09:16 audreyt geoffb: uh that shouldn't happen
09:17 geoffb one would think
09:17 audreyt grep -r for ~/.subversion
09:17 svnbot6 r15675 | audreyt++ | * Pugs.Run.Perl5: Preliminary support for converting
09:17 geoffb Is there a way to flush authentication information for a mirror?
09:17 audreyt to see if it has cached passwd?
09:17 svnbot6 r15675 | audreyt++ |   non-SvUTF8 data from Perl5.
09:18 audreyt yes, rm .subverison/auth/*
09:18 audreyt geoffb: nonSvUTF8 support is in. I'll nap a bit
09:18 geoffb audreyt: ok, thanks
09:20 geoffb OK, there's no matching auth file for the pugs repo, so nothing cached
09:21 pasteling "evalbot_r15674" at 194.145.200.126 pasted "Pugs build failure" (406 lines, 22.9K) at http://sial.org/pbot/23461
09:23 geoffb svk insists on being insane
09:23 geoffb I'm giving up on committing the test for now
09:23 geoffb sigh
09:24 geoffb audreyt: you appear to have broken the build
09:25 geoffb Linking pugs.new ...
09:25 geoffb /home/geoff/svk/pugs/third-party/installed/lib/Pugs-6.2.13/ghc-6.6/libHSPugs-6.2.13.a(p5embed.o): In function `pugs_SvToVal':
09:25 geoffb p5embed.c:(.text+0x206e): undefined reference to `pugs_PvnToValUTF8'
09:25 geoffb collect2: ld returned 1 exit status
09:25 geoffb Build failed: 256 at util/build_pugs.pl line 485.
09:26 rindolf joined perl6
09:31 Loro joined perl6
09:32 gaal geoffb: does a clean build work?
09:32 geoffb will try
09:32 rindolf Hi all.
09:32 rindolf Hi gaal
09:32 gaal hello rindolf
09:33 rindolf gaal: what's up?
09:34 gaal working on a unifier for method signatures.
09:35 mj41 more info about video http://google-code-updates.blogspot.com/2007/01/open-source-developers-google-speaker_21.html
09:35 lambdabot Title: Google Code - Updates: Open Source Developers @ Google Speaker Series: Ben Colli ..., http://tinyurl.com/28lyl3
09:37 * geoffb waits impatiently for build
09:37 geoffb Can pugs be safely built in parallel?
09:38 moritz_ no idea
09:39 geoffb Single-threaded compiles are *so* two years ago.
09:42 moritz_ dig svn.pugscode.org +short|wc -l
09:42 moritz_ 0
09:42 moritz_ DNS problems again
09:44 ayrnieu 'make soon' dies trying to compile the Prelude, but it builds pugs fine, and pugs itself loads the Prelude from source.
09:46 geoffb gaal, audreyt: clean build seemed to work, yay
09:48 ayrnieu ?eval do { 1 } if 1
09:48 evalbot_r15652 is now known as evalbot_r15675
09:48 evalbot_r15675 Error: ␤Unexpected "if"␤expecting operator
09:49 ayrnieu eval: do { 2 } if 1
09:49 ayrnieu buubot?
09:49 ayrnieu bah.
09:50 moritz_ ?eval: do { 2 } if 1
09:50 evalbot_r15675 Error: ␤Unexpected ": do"␤expecting "::"
09:55 andara joined perl6
10:24 ayrnieu ah, do{} can no longer have a modifier.
10:25 ayrnieu that's odd, but it might anyway not be missed, with cleaner tests.
10:38 ayrnieu well, especially not as a simple block will do.
10:38 ayrnieu ?eval do { say 1; say 2 } if 1
10:39 evalbot_r15675 Error: ␤Unexpected "if"␤expecting operator
10:39 ayrnieu ?eval { say 1; say 2 } if 1
10:39 evalbot_r15675 OUTPUT[1␤2␤] Bool::True
10:41 geoffb g'night all, it's WAY past my bed time.
10:41 geoffb zzz &
10:51 audreyt @seen TimToady
10:51 lambdabot TimToady is in #perl6. I don't know when TimToady last spoke.
10:51 specbot6 r14344 | audreyt++ | * S02: More fixups to reflect that fact that the f($x) form
10:51 specbot6 r14344 | audreyt++ |   is always &f($x) and never $x.f() now.
10:51 buetow joined perl6
10:57 the_dormant joined perl6
10:58 aukjan|gone is now known as aukjan
11:01 audreyt @tell TimToady S02:1438 seems to overrule S06:194 (which was earlier text.) Is it okay if I update both to say that &-sigil fallback to global by default, but no other sigils do?
11:01 lambdabot Consider it noted.
11:03 ruoso joined perl6
11:04 audreyt @tell TimToady logical consequence is that multi sub dispatch in lexical context should do a lookup to GLOBAL and include those variants, too, for &*infix:<+> to work.
11:04 lambdabot Consider it noted.
11:09 moritz_ audreyt: pugscode.org DNS seems to be b0rked again
11:12 ayrnieu ?eval my $a = 1 if 0; $a
11:12 evalbot_r15675 \undef
11:17 gaal rehi
11:20 svnbot6 r15676 | gaal++ | * conflicting positionals give up their specific positions but
11:20 svnbot6 r15676 | gaal++ |   leave a positional trace, whether optional or required.
11:22 Alias_ joined perl6
11:24 fglock joined perl6
11:33 rfordinal_ joined perl6
11:36 VanilleBert joined perl6
11:40 riffraff joined perl6
11:40 riffraff szia
11:42 riffraff apart from the reduce metaoperator [] is there a form of fold that takes a block in perl6?
11:42 avar fold?
11:42 gaal explicit reduce function.
11:43 gaal reduce { $^a * $^b } @list
11:43 moritz_ same as [*] @list?
11:43 gaal yes.
11:43 riffraff what is the signature? because when I used &reduce in pugs' repl I got the internal educe AST.expr -> Val
11:43 riffraff ah ok, thanks
11:44 IllvilJa joined perl6
11:54 audreyt pugs> &reduce.signature
11:54 audreyt :(@?2 is copy, @?1 is copy)
11:54 audreyt also, you need a comma after the block
11:54 audreyt reduce { $^a*$^b}, @list;
11:54 gaal .signature works!? whoa.
11:54 audreyt uh it's been working for quite some time.
11:54 gaal is that a moose
11:55 audreyt up and including &code:(longname).signature
11:55 riffraff yes, I spotted the missing comma :)
11:55 gaal this unification thing is clobbering my brain :)
11:56 audreyt sorry to have you attack the hard problem while I code the trivial parts...
11:56 gaal it's fun :)
11:56 riffraff btw, I read the commit on docs that says foo($x) is never a method call
11:56 gaal just brain clobbering
11:56 gaal (I'm still trying to gain an intuitive feel for it)
11:57 audreyt riffraff: correct. however, see S12:211 for important safety information.
11:57 riffraff ok, thanks
11:57 audreyt :)
11:57 gaal "do not code while driving"
11:58 [particle] joined perl6
11:58 moritz_ I've always been told "Don't drink and derive" ;-)
11:59 audreyt derive (Drunkable)
11:59 gaal with DrIFT
12:00 audreyt woot, dispatch speed now back to normal.
12:01 gaal yay!
12:08 Khisanth joined perl6
12:10 chris2 joined perl6
12:11 gaal argh, $($x) :+: $($y), it's not in fact incompat is it? rather, :($, :$x?, :$y?) should work
12:12 rfordinal_ is now known as rfordinal
12:12 fglock are proxy objects for Array and Hash specified?
12:14 fglock looking for (TODO & @fun)
12:16 Limbic_Region joined perl6
12:19 BooK joined perl6
12:27 svnbot6 r15677 | audreyt++ | * Cipher::TestGuts: $_ is not self.
12:27 svnbot6 r15678 | audreyt++ | * Pugs.AST.Internals: VMultiCode is now a shallow Set of
12:27 svnbot6 r15678 | audreyt++ |   long names, instead of a deep Map into PadEntry.
12:27 svnbot6 r15678 | audreyt++ |   This makes pad reentry work correctly (it won't keep
12:27 svnbot6 r15678 | audreyt++ |   referring to the compile-time pad), and speeds up
12:27 svnbot6 r15678 | audreyt++ |   dispatch a lot.
12:27 svnbot6 r15679 | audreyt++ | * Pugs.Types.Code: The ICode instance is no more;
12:27 svnbot6 r15679 | audreyt++ |   it should always be able to get .signature without
12:27 svnbot6 r15679 | audreyt++ |   entering any kind of monad..
12:30 svnbot6 r15680 | audreyt++ | * regen instances.
12:30 svnbot6 r15681 | audreyt++ | * Pugs.AST: Looking up a lexical multi sub should always
12:31 svnbot6 r15681 | audreyt++ |   include variants from the global multi, if present:
12:31 svnbot6 r15681 | audreyt++ |     my multi infix:<+> (Str $x, Str $y) { "$x$y" }
12:31 svnbot6 r15681 | audreyt++ |     'a'+'b';    # 'ab'
12:31 svnbot6 r15681 | audreyt++ |     1+2;        # 3 -- shouldn't shadow the global *infix:<+>
12:33 audreyt fglock: no they are not :) patches welcome
12:33 audreyt gaal: correct, they are compat
12:33 gaal audreyt: mind checking SigMonoid for sanity?
12:34 audreyt gladly
12:34 gaal thank you. :)
12:35 svnbot6 r15682 | audreyt++ | * Pugs.Eval.Var: f(123) is now strictly always the same as &f(123).
12:35 svnbot6 r15683 | audreyt++ | * Pugs.Parser: There is no way to remove something from the
12:35 svnbot6 r15683 | audreyt++ |   lexical pad, so eliminate dead code concerning disappearing
12:35 svnbot6 r15683 | audreyt++ |   padentries.
12:35 fglock joined perl6
12:36 svnbot6 r15684 | audreyt++ | * Misc. fixups.
12:36 svnbot6 r15684 | audreyt++ |   This concludes the multi-variants-handling batch of commits.
12:39 gaal bbiab&
12:41 pasteling "evalbot_r15676" at 194.145.200.126 pasted "Pugs build failure" (434 lines, 23.2K) at http://sial.org/pbot/23462
12:42 Psyche^ joined perl6
12:44 Psyche^ is now known as Patterner
12:45 audreyt gaal: note that :$x means :$x? by deafult not :$x!
12:46 drupek12 joined perl6
12:46 svnbot6 r15685 | audreyt++ | * SigMonoid: review.
12:46 evalbot_r15675 is now known as evalbot_r15681
12:50 svnbot6 r15686 | audreyt++ | * unTODO.
12:52 Limbic_Region audreyt - couple points regarding my smoke test last night - 1.  It was extremely slow.  2.  It did not hang  3.  It did not upload for some reason.  4.  There are a lot of failing tests
12:53 Limbic_Region I assume 4 is known
12:53 audreyt Limbic_Region: yes, still working on speedup (should be better now)
12:53 audreyt no idea why it did not upload
12:53 audreyt glad it did not hang
12:53 Limbic_Region me too - as I noted in the @tell though - that might be because it is fixed or because it is failing prior to hanging
12:54 Limbic_Region btw - diakopter was fairly concerned that I first check with you as to his trustworthiness prior to mailing him a check to forward on to your paypal
12:54 Limbic_Region I told him, if he ripped off the perl community - that was on his head
12:55 Limbic_Region so in any case, check went out this morning
12:56 * Limbic_Region AFK &
12:57 audreyt Limbic_Region: wow. thank-you.
12:59 audreyt (bbiab)
13:08 stevan_ joined perl6
13:11 TimToady joined perl6
13:11 diakopter joined perl6
13:19 weinig joined perl6
13:22 diakopter @tell Limbic_Region :P
13:22 lambdabot Consider it noted.
13:26 svnbot6 r15687 | fglock++ | docs/Perl6/Overview/Subroutine.pod - minor comment on Proxy behaviour
13:33 VanilleBert left perl6
13:36 rashakil__ joined perl6
13:38 nipotan is now known as nipotaway
13:40 gaal < audreyt> gaal: note that :$x means :$x? by deafult not :$x!
13:40 weinig is now known as weinig|bbl
13:40 gaal in general? how come?
13:42 ayrnieu @tell audreyt could you please reset my svn password for pugs?
13:42 lambdabot Consider it noted.
13:42 gaal oh, S06:620 says so.
13:42 gaal what's the motivation?
13:46 avar "
13:46 nipra joined perl6
13:48 gaal the UNIFY rule for unpacking can't be right:
13:48 gaal  :($t)        :+:  :($t (Left $l, Right $r)) = :(BinTree $t)
13:50 mr_ank joined perl6
14:04 pasteling "evalbot_r15685" at 194.145.200.126 pasted "Pugs build failure" (443 lines, 25.5K) at http://sial.org/pbot/23464
14:04 iblechbot joined perl6
14:10 vel joined perl6
14:15 weinig|bbl is now known as weinig
14:23 weinig is now known as weinig|bbl
14:34 audreyt gaal: why? isn't :($t) just :($t (|$)) ?
14:34 lambdabot audreyt: You have 1 new message. '/msg lambdabot @messages' to read it.
14:35 audreyt and thus :(|$) unifies with :(Left $l, Right $r)
14:36 kanru joined perl6
14:38 audreyt ayrnieu: sure, resending
14:38 audreyt done
14:38 nipra joined perl6
14:38 ayrnieu yay, thanks.
14:39 dec_ joined perl6
14:40 gaal but how is BinTree inferred?
14:40 gaal lhs didn't mention it.
14:40 aukjan is now known as aukjan|gone
14:40 audreyt er. sorry. my bad.
14:40 audreyt :($t)
14:42 obra audreyt: pugs.blogs.com wants love
14:42 svnbot6 r15688 | gaal++ | * Perl 6 ne Haskell, yet
14:44 audreyt obra: k
14:47 pasteling "fglock" at 201.54.129.80 pasted "Draft - Array/Hash Proxy objects" (36 lines, 775B) at http://sial.org/pbot/23465
14:48 fglock audreyt: I've got a few '???' on Proxy objects
14:49 fglock but otherwise it looks pretty simple
14:50 pdcawley joined perl6
14:51 audreyt yeah. so LOOKUP etc is unneccessary
14:51 audreyt all we need is FETCH and STORE
14:52 audreyt so the spec does not actually need amendment
14:52 audreyt because it's the same for array/hash/scalar/etc
14:52 fglock hmm - what does @a.FETCH returns?
14:53 fglock ListProxy ?
14:53 audreyt well no
14:53 audreyt the idea is there is a Proxy class
14:54 audreyt class Proxy { has &!FETCH; has &!STORE }
14:54 audreyt with methods
14:55 audreyt method ITEM () { ITEM(&!FETCH()) }
14:55 audreyt method LIST () { LIST(&!FETCH()) }
14:56 audreyt method infix:<=> (|$x) { VAR(&!STORE(|$x)) }
14:56 audreyt so the public interface is still ITEM/LIST/infix=
14:57 audreyt (the ITEM(...) LIST(...) VAR(...) are macros that sets contexts; the first two is rvalue; VAR is lvalue)
14:57 fglock I mean, let's say you want to define a lazy list - then you want LIST to return a lazy list...
14:58 fglock you need a Proxy-like thing for lazy lists
14:58 fglock I mean, lazy arrays
14:58 riffraff joined perl6
14:59 audreyt yes, you'll need to return an object that can respond to :postcircumfix<[ ]>
14:59 audreyt but I see your point
14:59 audreyt maybe we need a Proxy::List cass
14:59 audreyt clas
15:00 audreyt that accepts LOOKUP, UPDATE etc and map them into postcircumfix:<[ ]>
15:00 wolverian and hashes? :)
15:02 audreyt otoh, maybe just writing postcircumfix<[ ]> and postcircumfix<{ }> that in turn returns Proxy is good enough
15:04 fglock compiles to: $proxy.FETCH.postcircumfix<[ ]>.(3)
15:04 audreyt or we just use the perl5tie names.
15:05 fglock another point is how do you declare the Proxy type, for bind-time type checking
15:05 ayrnieu Where is Pugs::Emitter::Perl6::Perl5 ?  v6-alpha has it as a prerequisite, but I don't see it on CPAN.
15:05 fglock ayrnieu: it is in the v6 distro
15:05 audreyt the compiled method would probably be VAR('$proxy').ITEM.postfircumfix<[ ]>(3)
15:06 avar audreyt: what text editor do you use?
15:06 audreyt avar: vim
15:06 avar :)
15:06 moritz_ that's the only one[tm]
15:06 ayrnieu ah, so it is.
15:06 moritz_ if it was only written in perl..;-)
15:07 moritz_ OTOH even perl5 is written in C, so C can't be a bad choice ;)
15:07 fglock later & ...dentist :(
15:07 ayrnieu moritz_ - you can embed Perl in it, although I haven't played with it.  Anyway, if you want to start on a vim-in-perl...
15:07 avar I like your logic and wish to subscribe to your newsletter
15:08 moritz_ ayrnieu: I know, but that's just to execute perl commands on the currently loaded file...
15:08 ayrnieu moritz - I will stand firmly behind you :-)  Someone had a decent hack of a vi in ruby, a few years ago.  Really, you could get something usable with just sweat and Term::ReadKey
15:08 moritz_ ayrnieu: I'd like to see perl plugins etc. for vim ;)
15:09 rindolf moritz_: didn't you write your own editor in Perl?
15:09 moritz_ rindolf: no, that was lichtkind iirc
15:10 * [particle] writes his own compiler in perl :)
15:10 rindolf moritz_: ah.
15:10 diakopter moritz_: any progress on that donate/sponsor wwwsite?
15:10 avar perhaps you should use an editor with a real programming language built in:)
15:10 ayrnieu particle - I've written more than a few syntax-driven, one-pass, direct-emitting compilers in Perl :-)
15:10 * avar makes some mention of emacs and runs away:)
15:10 wolverian vim's perl support is rather pitiful, really. it provides only very rudimentary methods.
15:11 lichtkind joined perl6
15:11 ayrnieu wolverian - do other languages have better support on it?
15:11 wolverian no.
15:11 wolverian vim only supports vimscript well.
15:12 wolverian I suppose reimplementing vimscript's features in perl on top of the rudimentary perl interface would be sane. but no-one has done that.
15:12 avar what features does vimscript have?
15:12 integral a vimscript emittor for pugs would be another idea
15:12 lichtkind is there are prominent perl6 app?
15:13 moritz_ avar: I think it's a truing complete lang ;)
15:13 moritz_ lichtkind: evalbot ;-)
15:13 avar moritz_: well, so is brainfuck
15:13 lichtkind yes and another?
15:13 moritz_ avar: hm, right.
15:13 integral svnbot
15:13 lichtkind i mean beside chatbots :)
15:14 jamessan wolverian: what's lacking about scripting Vim via Perl?
15:14 * moritz_ is currently writing a sudoku solver in p6
15:14 pdcawley p6rules?
15:14 integral moritz_: what kind of algorithm?  logic programming?
15:14 moritz_ but I'm stuck at the point where I'm to lazy to clone objects manually ;)
15:14 wolverian jamessan, directly callable helper functions. the VIM namespace is pretty sparse.
15:14 moritz_ integral: no
15:14 lichtkind wasnt there a wiki in perl6?
15:15 moritz_ integral: essentially http://moritz.faui2k3.org/en/yasss in p6
15:15 lambdabot Title: YasSS - Yet Another (Simple|Stupid) Sudoku Solver - Moritz Lenz
15:15 * pdcawley has done a Sudoku/Killer/Kakuro solver in Ruby using continuations to handle the backtracking.
15:15 moritz_ integral: with arbitrary sudoku sizes
15:15 ayrnieu (There are neat Mercury sudoku solvers, using constraint programming.)
15:15 wolverian I suppose Inline::Vimscript would help...
15:16 lichtkind but no wiki?
15:17 * pdcawley did a short talk on the Ruby code last night, only to be asked "Why didn't you just do it in Prolog?"
15:17 integral ah, I see
15:17 * integral ended up using Dancing Links for quite a fast Perl 5 solver
15:17 ayrnieu pdcawley - prolog can do it naturally, but not well.
15:18 ayrnieu integral - constraint-programming system?
15:18 pdcawley integral: Does it generalise to Killer and Kakuro?
15:18 integral pdcawley: possibly;  I can't remember the rules for those
15:18 pdcawley ayrnieu: Yeah, half the game is in working out how to prune the tree.
15:19 integral ayrnieu: http://en.wikipedia.org/wiki/Dancing_Links # it's for finding exact covers
15:19 pdcawley killer: Sudoku grid, but instead of placed numbers the grid is divided into 'cages' which much add up to a given total.
15:19 integral hmm, which reminds me to put that module on CPAN *sigh*
15:20 ayrnieu lichtkind - if you come back on Friday, I'll have a couple of del.icio.us apps in Perl6 :-)
15:20 ayrnieu They will be prominently used by -me-!
15:20 wolverian hm, I wonder if the discussion on #haskell yesterday came up with a functional algorithm that is as efficient as dancing links
15:20 integral ayrniew++ # where do you find the time :-)
15:21 integral ayrnieu++ # where do you find the time :-)
15:21 * ayrnieu is on vacation, right now :-)
15:21 lichtkind ayrnieu i dont want to run them just write about, i writing a article about perl6 and now currently on chapter 8 or 9 which deals with pugs
15:21 pdcawley Wasn't there something in the Perl Review that used a matrix transform or something as both a solver and a generator?
15:22 pdcawley Almost certainly not a matrix transform now I think of it.
15:30 dec joined perl6
15:34 lichtkind ayrnieu are there any shiny pugs apps that i could list ?
15:35 ayrnieu You'd do better to ask the channel, sorry.
15:36 ayrnieu lichtkind - however, there -is- a wiki
15:37 lichtkind http://rakudo.org/perl6/index.cgi yes but no apps
15:37 lambdabot Title: Perl 6 / Perl 6
15:37 lichtkind or the wiki itself?
15:38 ayrnieu lichtkind - examples/networking/wiki contains a wiki in Perl6, I mean.
15:38 lichtkind ah thanks
15:38 the_dormant joined perl6
15:40 ayrnieu By Eric Hodges, it seems, who may be forsaken.  I don't know if anyone has deplyed it.
15:43 Arathorn joined perl6
15:44 iblechbot joined perl6
15:46 drupek12 joined perl6
15:48 bonesss joined perl6
15:48 bonesss joined perl6
15:59 amnesiac joined perl6
16:00 weinig|bbl is now known as weinig
16:27 ayrnieu does v6-alpha.pm only do a great deal of processing on its first run?
16:28 [particle] yes
16:28 [particle] it compiles modules the first time through
16:28 [particle] from then on, it uses the compiled versions
16:29 ayrnieu ah, phew :-)
16:29 Arathorn is v6-alpha what fglock's p6-on-p5 implementation has become?
16:29 ayrnieu yes.
16:30 ayrnieu hello-world's first run: 7m17.17s real     3m11.15s user     0m33.93s system
16:30 ayrnieu second: 0m29.04s real     0m18.51s user     0m1.96s system
16:31 moritz_ "first make it run, then make it right, then make it fast" ;)
16:31 [particle] third 0m1.99s real, fourth 0m0.12s ... :)
16:32 ayrnieu no, it doesn't get that fast.
16:35 [particle] just a linear extrapolation...
16:36 ayrnieu a linear one would be impossibly impressive :-)
16:36 Arathorn doesn't causality break down shortly after that? :)
16:37 [particle] when you're a particle, you can connect the dots if you move fast enough and in the right direction :)
16:37 moritz_ well, extrapolations are allways just approximations ;)
16:38 ajs_ Next thing, you'll have pugs solving the 2 envelope problem
16:38 TimToady how 'bout the Purloined Letter?
16:38 lambdabot TimToady: You have 2 new messages. '/msg lambdabot @messages' to read them.
16:39 [particle] i've described continuations as self-addressed stamped envelopes before
16:39 [particle] so i guess coroutines are like two envelopes
16:44 ayrnieu loop { print '_ '; say eval =$*IN }  -- helps with the load-time a bit :-)
16:45 ayrnieu ah, it's a bit out of date, though: it doesn't have OS::run
16:47 Arathorn i guess that makes closures notes which you scribble to yourself but don't bother to mail...
16:48 TimToady I think closures are more like diary entries: "Here's what the world looks like from here today."
16:48 Arathorn mm, that works better
16:49 TimToady and coroutines are dueling bloggers
16:50 * [particle] cues django
16:50 Arathorn and threads are a single blog which is actually written by umpteen different contributors...
16:53 TimToady rss feeds maybe
16:54 * Arathorn wonders what that makes usenet - some kind of pseudo-organic supercomputer? a Thinking Machines CM1/CM2 or something?
16:54 * Arathorn mumbles
16:55 moritz_ Arathorn: usenet is just /dev/urandom filtered by some perl scripts ;)
16:55 * [particle] wonders from the lack of groans if anyone got his double entendre
16:56 Arathorn [particle]: django having two duelling fingers?
16:57 Arathorn (or the whole deliverance duelling banjos thing?)
16:57 [particle] django the web framework (for blogging, perhaps) and django the banjoist
16:57 weinig is now known as weinig|bbl
16:58 Arathorn aah, had forgotton about that
17:00 jisom joined perl6
17:01 ayrnieu (oops, I optimistically rewrote that repl in discussion.)  How does perl6 spell its scalar()?
17:01 gaal item
17:03 clkao summon audreyt
17:04 ayrnieu so, say eval item =*IN ?
17:04 ayrnieu so, say eval item =$*IN ?
17:05 moritz_ what about =<>?
17:05 [particle] =<>.item.eval.say?
17:06 jisom left perl6
17:06 ayrnieu Which is to ask, is that correct?
17:07 jisom joined perl6
17:10 svnbot6 r15689 | moritz++ | included left sidebar in donate.pugscode.org
17:12 ayrnieu OK/ this works for now: loop { print '_ '; say eval ($_ = =$*IN) }
17:14 diakopter _moritz: typos on that page - s/finaly/final/ s/spent/spend/ s/devloped/developed/ s/offical/official/
17:14 diakopter moritz_ I mean
17:14 moritz_ diakopter++ ok, I'll fix it soon
17:15 pasteling "evalbot_r15688" at 194.145.200.126 pasted "Pugs build failure" (400 lines, 22.6K) at http://sial.org/pbot/23469
17:18 TimToady don't need .item for =<>.eval
17:19 TimToady or shouldn't, anyway
17:19 svnbot6 r15690 | moritz++ | typos fixed (pointed out by diakopter++)
17:19 [particle] there's no .loop, is there? eg =<>.eval.say.loop
17:20 avar OO--
17:22 ayrnieu -nod-,I think v6-alpha just needs some updating.
17:25 andara left perl6
17:25 svnbot6 r15691 | moritz++ | added POST tests with inheritance
17:27 the_dormant joined perl6
17:35 pasteling "evalbot_r15690" at 194.145.200.126 pasted "Pugs build failure" (400 lines, 22.6K) at http://sial.org/pbot/23471
17:38 svnbot6 r15692 | diakopter++ | fixing another misspelling.
17:42 ajs_ [particle] do you mean that to behave like Python's generator comprehension?
17:44 ajs_ ala http://www.python.org/dev/peps/pep-0289/
17:44 lambdabot Title: PEP 289 -- Generator Expressions
17:47 [particle] ajs_: precisely
17:47 ajs_ Lemme think about that for a sec
17:51 kattana_ joined perl6
17:52 ajs_ =<>.eval should already mean that, shouldn't it (I mean, I can't see what @a.eval would to OTHER than eval each element, and =<> is just a generator that behaves like a lazy list)
17:53 Jedai joined perl6
17:54 ajs_ However, more generally, I think a .loop would be fine, but should take a closure: =<>.loop(-> {.eval.say}) or something like that
17:55 [particle] not much different than for =<> -> .eval.say {}
17:55 [particle] er, i missed some brackets
17:55 ajs_ yeah, but you're right
17:55 ajs_ and that's cleaner
17:56 ajs_ for =<> -> {.eval.say}
17:56 [particle] ajs_++
17:57 ajs_ or  map {.eval.say} =<> which gives you exactly what Python's doing, since it returns the resulting list of success values from say
17:57 ajs_ not that that's useful
17:57 [particle] map isn't guaranteed to be sequential, is it?
17:58 ajs_ If not, I'm sure there will be a way to request it. It's too useful on generators to be sequential
17:58 ajs_ and of course, that's map {.eval.say}, =<> now
17:58 ajs_ comma
17:59 riffraff joined perl6
18:01 ajs_ of course, =<> >>->{.eval.say} would be way cool ;-)
18:02 ajs_ and ?-> is such a cute little arrow ;-)
18:02 vel6608 joined perl6
18:05 TimToady =<> ==> map {.eval.say}
18:07 [particle] feed the map a fish
18:07 fglock joined perl6
18:08 TimToady ...and thanks for the fish
18:09 TimToady =<>==> looks like a cool operator
18:09 avar is whitespace required between the two?
18:09 TimToady no, why should it be?
18:10 [particle] if you define =<>==>
18:10 avar because some stuff in p6 required whitespace to delimit it
18:10 avar ...and I can't remember all those rules
18:11 moritz_ we need more ascii art operators
18:12 TimToady as far as I know there are only three things that arbitrarily require whitespace.  listops, labels, and statement-level blocks
18:13 TimToady meaning "if" blocks and the like
18:14 TimToady well, and any infix that would be mistaken for a postfix, but that's not really "arbitrary"
18:15 TimToady we could in theory allow print$x
18:15 TimToady and label:for 1..10 could be disambiguated if we were pickier about distinguishing keywords
18:15 moritz_ after all we're not developing python, so we usually don't enforce whitepaces ;-)
18:16 [particle] @array [*]
18:16 lambdabot Ahoy mateys
18:16 [particle] heh, that was unexpected :)
18:16 TimToady but the whitespace rules we do have are pretty much all in the interests of not blocking grammar mods
18:17 TimToady and that means keeping our grammatical categories straight without resorting to lists of keywords
18:18 TimToady which is kind of a PL/Iish idea, really
18:18 TimToady not that I've ever studied PL/I...
18:19 TimToady but it was famous for being able to parse
18:19 TimToady IF IF = THEN THEN THEN = ELSE ELSE ELSE = END END
18:19 TimToady or something like that.
18:19 allbery_b more or less
18:19 allbery_b PL/1 didn't have keywords
18:19 allbery_b of course, neither did FORTRAN
18:20 TimToady we get away that approach even more than PL/I because of our noun markers tend to keep things visually straight.
18:21 TimToady and we achieve a better balance of punctuation vs identifiers, mostly due to {...} inherited from C
18:22 TimToady most of the identifiers in Perl carry semantic meaning, not just syntactic meaning.
18:23 riffraff sorry about the question, but what is =<> supposed to be?
18:23 ayrnieu however it happens, I find perl tremendously easy to read, compared ironically to Python.
18:23 avar t/w 5
18:23 [particle] it's a STDFISH!
18:23 TimToady =<> is the old <>
18:23 riffraff ah thanks
18:24 TimToady it's just the prefix:<=> iterator dereferencer applied to a null list
18:24 [particle] or is that magical argfish?
18:24 ajs_ STDFISH... heh
18:24 ajs_ might be stdfio
18:24 ayrnieu riffraff - also, =$*IN
18:24 riffraff so  =<> ==> map {.eval.say} is like the shortest repl ever?
18:24 TimToady <> merely means (), so in fact =() would probably also work.
18:24 TimToady I guess that would be the lollipop operator
18:25 ajs_ I think that's stdlol
18:25 TimToady hmm, as a smiley it looks more like the "I'm about to kiss you" operator
18:26 ayrnieu =<> looks like a bird.
18:26 [particle] as opposed to =<> which is imunnaeatchoo
18:26 ayrnieu 's smiley.
18:26 ayrnieu riffraff - .eval.say for =<>
18:26 buetow joined perl6
18:27 justatheory joined perl6
18:27 riffraff ayrnieu: :)
18:43 buu joined perl6
18:46 buubot joined perl6
19:02 awwaiid joined perl6
19:03 Patterner <>< is a NONSTDFISH?
19:04 qmole_ (fish operators)++
19:04 moritz_ is a non-fish a moose?
19:05 Patterner depends on your universe
19:11 weinig|bbl is now known as weinig
19:13 vel joined perl6
19:14 weinig is now known as weinig|bbl
19:19 xinming joined perl6
19:29 awwaiid joined perl6
19:29 justatheory joined perl6
19:36 chris2 joined perl6
19:44 DrSlump_2 joined perl6
19:46 geoffb joined perl6
20:05 mako132_ joined perl6
20:10 geoffb Perl 6 port of my Perl 5 OpenGL code from the perl.com articles (lo these many moons ago): http://www.broadwell.org/dl/step075.p6
20:10 geoffb It's not fully colloquial yet, but it works!
20:10 * geoffb is inordinately proud of his baby steps.  :-)
20:10 integral geoffb++
20:11 geoffb thanks, integral
20:17 TreyHarr1s joined perl6
20:18 awwaiid joined perl6
20:19 fglock ayrnieu: re v6.pm, that's real slow; maybe lack of ram? (requires about 70MB free)
20:20 ayrnieu fglock - yes, this machine has 64MB RAM and the less is swap.  It's slow, yes, but I can't run pugs at all on this machine, so v6.pm is infinitely faster :-)
20:20 [particle] geoffb++!
20:20 ayrnieu 'the rest is'
20:21 geoffb [particle]: thanks!
20:22 fglock ayrnieu: btw, v6.pm is open for hacking :)
20:22 * [particle] hasn't coded gl for ~10 years now :(
20:22 ayrnieu understood :-)
20:23 geoffb [particle]: I can't stay away.  If I don't do some gl on a regular basis, it literally starts to keep me up at night -- and then when I finally give in, I stay up *really* late at night hacking away
20:24 moritz_ geoffb: that's what they call "addiction" ;)
20:24 geoffb moritz_: guilty as charged.
20:25 wilx` joined perl6
20:25 moritz_ ;)
20:26 mr_ank joined perl6
20:28 [particle] geoffb: i used to do some battlefield visualization work for the navy -- i had a sgi onyx reality engine 2 for my workstation :)
20:29 geoffb moritz_: there's really just nothing so cool for me as seeing the results of my code in moving, glowing glory
20:29 geoffb [particle]: nice!
20:29 [particle] back in the days of jurasic park
20:29 geoffb [particle]: nodnod.  The only people who had the Onyx as a workstation had it when it was newish.
20:30 dec_ joined perl6
20:31 [particle] i can remember trying to program opengl after gl, and thinking *yuck*, this is slow! it's not tied to the hardware!
20:31 geoffb LOL
20:32 Aankhen`` joined perl6
20:32 moritz_ ;)
20:36 fglock @tell audreyt re Proxy: how to specify type, such that the compiler can perform bind-time type checking? maybe needs 'is' or 'does' when the proxy is created?
20:36 lambdabot Consider it noted.
20:36 meppl good night
20:37 fglock meppl: good afternoon
20:37 meppl ;)
20:40 fglock hmm - my example should probably be @a := @($proxy), instead of @a := $proxy; or doesn't it make difference?
20:51 Arathorn ooh
20:51 * Arathorn checks out the p6 opengl code
20:51 * Arathorn learnt to program in C and IRIS GL, originally - alas for the platform abstraction :)
20:52 geoffb :-)
20:52 geoffb Bunch of old timers here!
20:52 nipra joined perl6
20:52 [particle] it's hard to believe
20:52 * Arathorn was on an IRIS 1400 rather than an Onyx RE2, tho' ;)
20:53 [particle] i used to have a couple vi sessions open, while whales and dolphins swam in the background :)
20:54 geoffb [particle]: and now, after all these years, you can start to do it again.  :-)
20:54 [particle] (reliving the glory days)++
20:55 geoffb too true
20:55 moritz_ now we have vim to substitue vi ;-)
20:57 Arathorn and OSX is probably the closest match to IRIX :(
20:57 fglock I used to do CG with assembler and turbo-pascal, in an ibm-pc with VGA (and DOS)
20:57 geoffb fglock: ditto, except Turbo C.  :-)
20:57 [particle] fglock: i did that too! wrote many a ray tracer with borland turbo c
20:57 geoffb Although my earliest graphics were on the Tandy Color Computer
20:58 fglock heh :)
20:58 [particle] c64 for me
20:58 * Arathorn used turbo C - its online help was lovely
20:58 [particle] ooh, yes, it was shiny help
20:59 * geoffb loved Turbo Debugger
20:59 fglock turbo pascal was much faster with one-pass compiler & link (on a 286 or something)
20:59 geoffb That thing ruled
20:59 Arathorn my earliest graphics were on the Dragon 32, which was a british clone of the TRS80.  fairly limited, though, unless you dropped into 6809
20:59 geoffb I stopped buying Borland compilers when they told me they wouldn't come with TD anymore
21:00 geoffb And Turbo Assembler actually came with full 386 instruction docs with detailed timings.  Bloody helpful.
21:01 ayrnieu fglock - http://compilers.iecc.com/crenshaw/ ; recursive-descent one-char-lookahead syntax-driven direct-to-assembler one-pass compiler tutorial, in Pascal.  I've been going through it, writing perl5 and emitting PIR.
21:01 lambdabot Title: Let's Build a Compiler
21:02 ayrnieu oh, it emits 68k asm.
21:02 fglock ayrnieu: cool :)
21:03 geoffb ayrnieu: what is the source language?  Also Pascal?
21:04 asz joined perl6
21:05 fglock it is a language called TINY
21:05 ayrnieu geoffb - no, a made-up one.  It's slow starting..
21:05 ayrnieu also, starting.
21:06 * geoffb got his current job writing a Forth interpreter in Perl.  And the $job has absolutely nothing to do with Forth.  :-)
21:08 moritz_ writing an interpreter in an interprete language is.. interesting ;-)
21:09 fglock decommute &
21:09 ayrnieu Forth is one of the more interesting languages, as compiler-writing goes.
21:09 geoffb quite fun, actually.
21:09 ayrnieu moritz_ - that URL pauses at lesson 8 or so to show how similar compilation and interpretation are :-)
21:10 moritz_ ayrnieu: which URL?
21:11 ayrnieu moritz_- http://compilers.iecc.com/crenshaw/
21:11 lambdabot Title: Let's Build a Compiler
21:13 moritz_ ayrnieu: I searched for something like this a while ago and din't find anything suitable
21:16 Gothmog__ joined perl6
21:30 rafl joined perl6
21:41 larsen_ joined perl6
21:45 putter joined perl6
21:46 geoffb rafl: do you still maintain pugs builds for Debian?
21:52 putter so is donate.pugscode.org ready to be mentioned in public?  boston.pm in ~1 hour.
21:52 lambdabot putter: You have 1 new message. '/msg lambdabot @messages' to read it.
21:52 moritz_ putter: not really ;-)
21:52 moritz_ putter: currently it just has a "donate" botton and a few lines of text
21:53 putter but does the donate button work? :)
21:53 putter ie, has there been an end-to-end test, before folks start throwing money at it?
21:53 moritz_ I haven't tried entirely, but I'm pretty sure it dos
21:54 moritz_ if you click on it you come the the paypal page
21:54 moritz_ but no end-to-end test
21:54 Arathorn where will the funding go, ooi?
21:55 Arathorn ah, to audreyt
21:55 putter though the page is a bit ambiguous on that point.  "support the work of audreyt" could be funds go to a florist to provide her with flowers.
21:56 moritz_ putter: you're welcome to clarify the page
21:56 putter well, not quite that ambiguous.  but perhaps should more explicit
21:56 moritz_ my english is not the best, so I'm always happy to hear such comments
21:57 putter np.  very very nifty to see it happening
21:59 geoffb ditto that
22:01 moritz_ putter: it already says "support the work of Audey Tang _on pugs_"
22:01 moritz_ putter: how is that ambigous?
22:02 Limbic_Region joined perl6
22:03 putter paying for a secretary, or renting a machine, etc, could be supporting work on pugs.  != money lands in audreyt's bank account
22:04 Gothmog_ joined perl6
22:04 moritz_ putter: so how would you phrase it?
22:04 putter i think i'll mention it as an as-yet-untested draft.
22:05 putter hmm...
22:05 Limbic_Region putter - what did the secretary comment mean?
22:05 lambdabot Limbic_Region: You have 1 new message. '/msg lambdabot @messages' to read it.
22:05 Limbic_Region @moosages
22:05 lambdabot diakopter said 8h 43m 7s ago: :P
22:06 putter insufficient brain just now.  will try to look at it later.  headed out door. &
22:06 putter Limbic_Region: re ambiguous about what happens to donation
22:06 putter &
22:08 * Limbic_Region hasn't been able to keep up with the support audreyt activity but will catch up and stay caught up starting this time tomorrow
22:11 Gothmog__ joined perl6
22:11 Psyche^ joined perl6
22:11 larsen_ joined perl6
22:14 Limbic_Region joined perl6
22:23 Psyche^ is now known as Patterner
22:31 prism joined perl6
22:35 bsb what is perl5's $/ called now?
22:37 geoffb bsb: If you're asking about doing something like local $/ = '' , it happens that I asked that yesterday.
22:37 geoffb The answer was: nothing implemented yet, use slurp & split instead
22:38 geoffb hence:
22:38 geoffb my @defs = slurp($defs).split(/\n\s*\n/);
22:39 bsb I was headed in a different direction so I'll ask on p6l
22:39 bsb thanks geoffb
22:39 geoffb bsb: fair enough, np
22:42 explorer joined perl6
22:44 rashakil__ is now known as rashakil
22:46 geoffb Is pugs's time hi-res on all platforms, or just *nix?
22:49 pelagic joined perl6
22:49 ludan joined perl6
22:52 wilx` is now known as wilx
22:55 ruoso joined perl6
22:59 Limbic_Region @tell audreyt ext/HTML-Entities/t/entities.t is the test that hangs on Win32 (apparently I did nmake test not nmake smoke last night)
22:59 lambdabot Consider it noted.
23:00 drupek12 joined perl6
23:01 Gothmog_ joined perl6
23:07 Limbic_Region http://perlmonks.org/?node_id=604642
23:07 lambdabot Title: can you use perl6 from haskell?
23:07 * Limbic_Region doesn't know the answer to that
23:10 pasteling "geoffb" at 208.201.228.107 pasted "bug in hyper infix of list & scalar?" (12 lines, 360B) at http://sial.org/pbot/23474
23:13 moritz_ geoffb: what should @list >>/>>2 do?
23:13 moritz_ geoffb: I never came across that before
23:14 geoffb @list >>/>> 2 should work, not throw.   And @list >>/<< 2 should throw, not work.
23:14 lambdabot No module ">>/>> 2 should work, not throw.   And @list >>/<< 2 should throw, not work." loaded
23:14 geoffb bad lambdabot, no botsnack
23:14 geoffb At least from my understanding of S03
23:15 moritz_ bloody dns
23:15 moritz_ I can't access the specs right now *sigh*
23:19 lichtkind joined perl6
23:20 lichtkind chromatic++ for adding disclaimer on A and E
23:27 BooK_ joined perl6
23:27 theorbtwo joined perl6
23:34 Juerd That's great.
23:34 Juerd If now someone could update dev.perl.org's documents...
23:39 charsbar joined perl6
23:44 geoffb (somewhat) cleaned up and colloquialized Perl 6 OpenGL code: http://www.broadwell.org/dl/step075.p6
23:45 diakopter joined perl6
23:48 [particle] is there no atan2 equiv in p6?
23:48 [particle] at least, in pugs? (i think i wrote one for parrot)
23:49 * Limbic_Region looks for giggles
23:49 moritz_ [particle]: iirc there is some disagreement between the specs and pugs...
23:50 moritz_ [particle]: there is a two argument form of atan in pugs
23:50 IllvilJa left perl6
23:50 [particle] ah
23:50 [particle] so that eval could be { 4 * atan 1, 1 } or something
23:51 Limbic_Region ?eval atan(2,2)
23:51 evalbot_r15681 is now known as evalbot_r15692
23:51 evalbot_r15692 pugs: user error (*** *** Can't modify constant item: VUndef␤        at <prelude> line 781, column 9-46␤           <prelude> line 781, column 9-46␤    at)␤
23:53 moritz_ pugs> atan(2,2)
23:53 moritz_ 0.7853981633974483
23:54 Limbic_Region try that * 4
23:54 Limbic_Region ;-)
23:54 Limbic_Region eval: my $pi = atan(2,2) * 4; $pi
23:54 buubot Limbic_Region: Error: Undefined subroutine &main::atan called at eval line 1.  
23:55 moritz_ how many bots do we have here?
23:55 [particle] all of them
23:55 [particle] (so it seems sometimes)
23:55 [particle] eval ?eval @eval
23:56 moritz_ !eval
23:56 devbot6 moritz_: Error: "eval" is not a valid command.
23:58 Limbic_Region ?eval my $pi = atan(2,2) * 4; $pi
23:58 evalbot_r15692 pugs: user error (*** *** Can't modify constant item: VUndef␤        at <prelude> line 781, column 9-46␤           <prelude> line 781, column 9-46␤    at)␤

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

Perl 6 | Reference Documentation | Rakudo