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