100 subtests fail | pugscode.org <<Overview Journal>> | pugs.kwiki.org | logged: xrl.us/e98m
Set by iblech on 22 March 2005.
ingy hola 01:05
Limbic_Region is autrijus aware of rt.cpan.org/NoAuth/Bugs.html?Dist=Perl6-Pugs 01:13
theorbtwo Hm, IIRC, bugs against your CPAN distros email you unless you tell it not to. 01:14
Limbic_Region oh - good 01:15
means no one has ever reported any bugs against Tie::Hash::Sorted ;-)
theorbtwo isn't that sure. 01:16
Limbic_Region is sorry he missed today's productivity 01:17
I was stuck in marathon meetings from hell all day
theorbtwo Uff. 01:19
I feel for you man.
Schwern Ugg, darcs repo still not compiling. 01:27
Chasing modules from: src/Main.hs
src/Main.hs:
Can't find module `Compile'
(use -v to see a list of the files searched for)
make: *** [pugs] Error 1
src/Compile* didn't get imported into the darcs repo 01:28
theorbtwo Use the SVN instead? 01:31
Schwern Not the point. :) 01:32
jabbot pugs - 1031 - Added examples/golf/tsanta.p6 (p6 versio 01:43
pugs - 1032 - reorganizing the FileSpec module, I did 02:03
flw ? 03:48
flw /me
Schwern Hey, can I be horrified by $?CALLER::CALLER::CALLER::POSITION ? 04:03
both by $?CALLER::CALLER::CALLER:: and by POSITION 04:04
I don't even know what $? means 04:05
autrijus Schwern: $?FOO is just a variable 04:25
that is usually read only
$PACKAGE::?FOO does not work 04:26
it's spellled as $?PACKAGE::FOO
so there you have it.
codesnik ew 04:28
autrijus better suggestions?
codesnik autrijus: i didn't considered cons and pros.. 04:29
but what about PACKAGE::$?FOO
assuming sigil is a part of name, this scheme don't involve any magic
autrijus true, it just means a little lookahead 04:30
p6l? :)
codesnik what?
jabbot codesnik: what is supposed to happen automagically
codesnik jabbot, yeah, still.. still.. dunno, it looks more sane and logical 04:31
jabbot codesnik: Please go on.
codesnik we either have sigils as some kind of data-type-purpose-whatever mark 04:32
either as part of name, just a convention
autrijus p6l means, "bring this suggestion to perl6-language" ? :) 04:33
codesnik autrijus: already did
autrijus k.
codesnik two or three months ago, no respond:)
autrijus that probably means it was considered even longer before 04:34
and was resolved to not do that.
autrijus was not around for long, so can't remember any of this
codesnik considers all such desision as some rudimentary perl5 habit 04:35
luqui about PACKAGE::$?FOO... we thought about that at one of the design meetings
and agreed that it was more consistent
but decided against it
codesnik why?
luqui for linguistic purposes
codesnik oh my
autrijus luqui: elaborate? 04:36
luqui Sir Autrijus Tang, not Autrijus sir tang
It's always sigil package name, even though the name includes the sigil in the symbol table... 04:37
partly historical, partly because we want "this is a variable" out front where it's easy to see
autrijus so then secondary sigils just follows
for consistency's sake.
luqui yeah, $Foo::?BAR would be very strange
(but then again, so would everything else we've been discussing) 04:38
autrijus perl 6 is very strange.
Alias_ Dangerously strange at times
But then if it means we can access CPAN from python, I'm totally cool with it
autrijus Alias_: that day may be closer than you thought :) 04:39
codesnik one who learn perl6 would need to make his brain inside out. that's good, when it for sense, but in *that* case, language need to make it inside out again
autrijus Alias_: you saw --runparrot?
Alias_ I have far more allegiances to CPAN than to perl itself
Although I really really like perl
autrijus hear hear.
<- won't be using perl if not for cpan
Alias_ It would just be a pity to throw away so much code
luqui useful, well modularized code. 04:40
autrijus that occasionally even works
Alias_ well testing, well documented... etc etc
tested
... for the most part
But then I imagine all of the top 10 CPAN people are in a similar position
luqui (isn't autrijus a top 10?) 04:41
Alias_ autrijus is 1.
luqui oh, cool
Alias_ is 4-6 depending on the calculation method
luqui steps into the background for his game design call 04:42
Alias_ But all of the top 10 are now at 50 packages or higher
obra game design? 04:43
autrijus mm, which means we account for 20% of the module list 04:44
codesnik you know what. how python people could access all this sigilled stuff? 04:45
or whatever else parrot based language 04:46
autrijus they do it by using the sigilless interface
so scalars are called without "$"
arrays has this a_ prefix
or something
codesnik feel some little unidentified doubts 04:47
cm the doubt starts with p.. and ends in ..arrot? 04:50
autrijus pizza_jar_cannot_rot? 04:51
err, doesn't end in arrot.
cm yeah, you lose :)
autrijus pizzajarrot then.
cm :|
you win.
ayrnieu pear-soup-with-carrots 04:52
autrijus "with parrot, we all win!"
codesnik you win and i'll have a pizza, all happy
autrijus yay. 04:53
cm donut 04:54
codesnik i have strange feeling. like if i should go to psychiatrist, sit on sofa, and tell him all my perl6 expectations. 04:55
cm sounds like fun 04:56
codesnik lique: a bit late comment, but "sir autrijus tang" isn't a good example. 05:13
we have: a name, a sigil, a package 05:14
they could be mapped: name=>name, of course; package=>surname, place of birth(which is the same, basically); sigil is the most strange part. 05:15
proffession?
autrijus Ms., Mr., Prof., 05:18
etc.
codesnik if we going to have linguistic parallels, then, it could look like: Var Module, the $; or: $Var from Module
i think it isn't something we should look for linguistic parallels,
autrijus the idea I think is for hinters to occur first. 05:19
@?PKG::foo
the @ is context hinter
? is scope/effect hinter
those things are more "important at first glance" than the package name.
codesnik it was hinter. now it's more the part of name 05:20
but..
autrijus it was the part of name that is the hinter
codesnik if $location eq 'PKG::' 05:23
how we could write @?PKG::foo
Schwern For the record, I wasn't horrified by $? I was horrified by the CALLER::CALLER::CALLER::POSITION part 05:39
obra sure. the previous version of that code actually propagated CALLER::POSITION all the way down 05:41
which was really bloody ugly before we had named params
it made the whole API insanely baroque
codesnik would something like $?::(caller(3))::POSITION work in perl6? 05:42
jabbot pugs - 1033 - Added my name 05:43
obra for the record, I agree that a hardcoded depth there is the wrong thing longterm 05:44
Alias_ CALLER::CALLER::et al is stupud 05:48
ayrnieu puzzles at: my @a = "hello" ~~ rx:perl5/[el]/; @a[0] == @a # bool::true 05:51
ayrnieu plans to reread everything. 05:52
on the bright side, @a<0> crashes pugs =) 05:53
Schwern Alias: Exxactly. 05:56
I'd expect caller(3){POSITION} or something
gaal ayrnieu: what are you getting?
ayrnieu maybe not exact: Fail: cannot cast into [VPair]: VArray (MkArray [VInt 1]) 05:58
gaal that's not a crash, that's a syntax error :)
ayrnieu with "(\n" output.
that is also a crash, gaal =)
gaal to your thinking, why is this syntactic and what should it mean? 06:00
ayrnieu I don't think you are following. Consider: sial.org/pbot/8517 06:01
I realize that what crashes pugs happens to be a syntax error. 06:02
gaal ah, *that* is a crash. :)
./pugs -e 'my @a=(1); eval "@a<0>.say"; "still alive".say' 06:03
wanna add a test to t/pugsbugs? 06:04
ayrnieu Sure.
Khisanth ayrnieu: so you finally got svk working? 06:05
gaal thanks!
ayrnieu Khisanth - no -- I'm just using svn.
jabbot pugs - 1034 - * Sample inline SHA1 module 06:13
gaal ! 06:16
ayrnieu ?
gaal though now that inlining from one language to another is becomming common, does the distinction between still src/ and lib/ make sense? 06:17
ayrnieu, I was referring to ++autrijus' latest commit.
autrijus rehi lambdacamels
gaal: for C we're still going to have include/ etc 06:18
cm /\ /\ /o+_
autrijus gaal: I think it makes sense to respect each language's culture
gaal: if you don't want src/ just put all haskell code in DATA block
=begin DATA sha1
...haskell code
=cut
and
Alias_ ugh
autrijus inline :Haskell(%=DATA<sha1>)
gaal sure, yes; if you're taking an existing module and "just" giving bindings for it
Alias_ actually... not so bad as putting shiteloads of actual data in it
and far better than encoding data as perl 06:19
autrijus yes.
I think it's a legitimate use.
speaking as a GW-BASIC refugee that remembers DATA
gaal what if you have a projectof your own, want to write some of it in X and some in Y
ayrnieu finally realizes that Test.pm's lives_ok is listed under FUTURE PLANS. 06:20
gaal ayrnieu: heh. though it would not have helped you anyway in this case. 06:21
autrijus so, I hope the inline primitive is ok with you folks.
ayrnieu oh, I just need eval =) 06:22
autrijus (ingy just arrived a few hours ago and we are hacking this)
gaal tres cool, autrijus
autrijus what does tres mean? :)
obra very
ayrnieu In French.
gaal ayrnieu, the test will pass when the hard parsefial is fixed, but until then you'll always get a crash 06:23
autrijus ah.
obra "tres chich"
chic
gaal not pronounced TRAY. :-p
add syntax to have the builtin slurp from a file maybe? 06:25
....or a url? :)
autrijus slurp() already does a file 06:26
no?
pugs -e 'say slurp "README"'
worksforme.
you are free to add url support in Prim.hs.
gaal sure--i meant for inline
autrijus what's wrong with "inline :Haskell(=<file>)" ? 06:27
I like the consistency.
i.e. not doing an -e test on the parameter string
working on Foreign.hs now. 06:28
To the Sea, to the Sea! The white gulls are crying,
The wind is blowing, and the white foam is flying.
West, west away, the round sun is falling.
Grey ship, grey ship, do you hear them calling?
gaal hmm, yes, that's just dandy
(i'd forgotten =<file> worked on a filename too, silly me) 06:31
ayrnieu OK, would this work for a test? sial.org/pbot/8519 06:34
autrijus pugs is not always in path 06:35
neither is that test always interpreted
what does S02 say
about $^X?
hrm didn't say anything about it.
what should happen is for me to always make parsefail trappable. 06:36
ayrnieu ah, I see that you say what to do in t/README 06:39
autrijus I'll call it External.hs instead of Foreign.hs 06:45
because haskell already has a Foreign call interface and I don't want to confuse myself :) 06:46
ayrnieu This should work: sial.org/pbot/8520 06:51
seeing as eval currently returns undef on syntax errors, as in: eval "1>>>3" 06:52
gaal ayrnieu++ # test case 06:53
better add a description on the ok line too
jabbot pugs - 1036 - SHA1 should be ignored until it works
pugs - 1035 - * External.hs landed.
gaal though, hm, in this case i can't think of a good one :) 06:54
ayrnieu sial.org/pbot/8521
autrijus ayrnieu: add yourself to AUTHORS.
gaal i meant in the ok() itself as the second parameter. but when this is in a file of its own it's pretty self-documenting. 06:55
gaal has to go now 06:56
see 'ya.
autrijus see ya!
ayrnieu thanks for the help, gaal =)
gaal thank you for the bug report :)
& 06:57
ayrnieu autrijus - what's my password, to commit the test and the AUTHORS change? 06:59
autrijus ayrnieu: your email? 07:00
(so I can make you a committer)
ayrnieu [email@hidden.address]
autrijus check your mail 07:02
crysflame morning, autrijus 07:03
obra morning? it's 3pm
crysflame aie 07:04
crysflame learns
+8?
ayrnieu OK, changes commited =) 07:05
masak the internet time is @337 .beats :) 07:06
www.timeanddate.com/worldclock/
ayrnieu ah, good to know that 'internet time' still exists. 07:07
masak i have it on my watch
never used it for anything :)
except pissing people off
"what time is it?" "uh, 338" 07:08
jabbot pugs - 1038 - added self 07:23
pugs - 1037 - added parsefail test
crysflame masak++ # heh 07:24
nothingmuch morning 07:48
masak morning? it's @367 :) 07:51
nothingmuch internet time is soooo 1999
;-)
nothingmuch is going to do currying, and then see what he can do about those 100 subtests 07:52
masak just realized that his watch actually is from 1999 ;)
08:20 Grrrr is now known as Gruber
nothingmuch thinks he got it, and made bindParams much more readable in the process 08:36
a funny side effect is that given: 08:37
sub foo ($x, *@slurp);
sorry 08:38
sub foo ($x, +%slurp)
foo(x => "1", x => "2")
will yield "1" in $x, and x => "2" in %slurp
08:39 cnhackTNT is now known as cnhackTNT|away
nothingmuch we have embedded p5? my god... 08:40
autrijus we will also have embedded haskell in another hour.
and embedded C. 08:41
nothingmuch ooh
autrijus see ext/SHA1/
pugs is suddenly very socialable with other languages.
nothingmuch my time is very limited
so i will err, delay
autrijus sure!
nothingmuch haskell's type system is soo good 08:43
the day before
yesterday i thought it was sadistic
but it's becoming so much more coherent now
not yesterday, yesterday i did nothing at all 08:44
obra "perhaps the pugs needs to be fixed"
nothingmuch autrijus: how tight is p5 integration?
autrijus nothingmuch: not very tight at all
it just does simple eval() that preserves context 08:45
no value transformation yet
nothingmuch do unresolved calls go to p5? i bet the other way around is much harder
ah
autrijus eval_perl5()
is the only bridge right now
once we have value casting then we have Inline::GHC.
and Inline::Pugs.
imagine the sickitude!
nothingmuch i would love Inline::GHC
autrijus sure. it is actually not that hard
nothingmuch i think haskell will be very very useful for me, once i "get it"
autrijus just not on my priority list
if you have a larger window of time we may pair on it 08:46
but not this week
nothingmuch doesn't know Inline::, or C (well, that is), or p5 guts, or ghc guts
so i doubt i
i'm useful =)
oh compile already! i want to see if it's worked!
nothingmuch rereads the sentance, decides that it's wrong, and then changes his mind again. 08:47
autrijus eh.?
nothingmuch it's worked
it has worked
but i thought it was wrong for a second
well, this is an improvement 08:48
pairs not working yet? 08:49
autrijus not working how what?
nothingmuch in params 08:50
autrijus I think it works and is parsed for nameds
nothingmuch hmm
autrijus but it gets passed in not as .val
but as a pair
which is wrong and caused obra problem
so seeing you're already there, maybe you can attempt a fix
nothingmuch++ # in advance
nothingmuch well, passing in as a pair makes sense to me
how was it a problem?
and how will a val look in a pair? 08:51
autrijus sub foo ($bar) { say $bar }
foo( bar => 1 ); # needs to print 1, not "bar1"
nothingmuch right
autrijus you can get a val out from a pair obj by doing
nothingmuch bindSomeParams will get a pair?
autrijus snd . vCast
nothingmuch i can unwrap that
autrijus yeah
nothingmuch ok
what is unPair?
autrijus it matches the args 08:52
to see if they are pairs
nothingmuch map unPair foo
autrijus and if yes, returns k/v pairs
nothingmuch k/v pairs? eh?
hold on, i need to grok bindNames 08:54
i don't understand this: (bound, exps') = foldr doBind ([], []) (map unPair exps) 08:55
autrijus ok
nothingmuch mpa unPair exps
what does that return?
autrijus it returns a list of k/v
nothingmuch a list of....
which is?
[ key, val, key, val ]?
autrijus unPair :: Exp -> (String, Exp)
so
nothingmuch oh
autrijus [(k, v), (k, v)] 08:56
nothingmuch it returns a list of haskell pairs
ok, that's good
autrijus yes.
now doBind takes that
and process each in turn
starting from ([],[])
and fill in things.
(assuming you grok folr)
foldr
nothingmuch i sort of do
autrijus foldr replaces the final [] of a list with an init value 08:57
in this case ([],[])
and replaces all the intermediate : of a list with a function
in this case doBind
and evaluate the expression.
nothingmuch yah
so doBind is getting a pair of empty arrays, and a value of the list 08:58
and then it's getting on the next iteration, the value it returned last time
and the next value from the list
of haskell kv pairs 08:59
ok, and doBind supposedly finds a param whose name is the fst of that pair
and then makes a new pair, (foundParam, snd pair)
right?
and accumilates things it can't bind in exps
Just prm <- find ((name ==) . tail . paramName) prms 09:00
will run the succeeding line only if there is such a param
which will prepend (prm, exp) : bound
read : as to
and if find has a Nothing
then exp is tacked on to exps instead 09:01
right?
i think unPair is called too late
it should be done in the begining of bindSomeParams
ah 09:05
not true, because isPair is isVPair, actually
autrijus: i don't see where the problem is
oh crap, i see what's going on 09:13
sub foo ($x, $y);
foo(y => 4);
$x = y => 5;
i have no clue where to stick a trace
oh! i think i see 09:14
(name ==)
because it's a perl pair
then name won't really be a string
it's an exp
i think
so that never is true
unless it's supposed to generate a type error
args: [App "&infix:=>" [Syn "cxt" [Val (VStr "Str"),App "&infix:~" [Val (VStr "x"),Val (VStr "")] []],Val (VInt 1)] []] 09:16
this will attempt to bind x => 1
eventually unPair should yield (k, v), right?
which in this case applies infix ~ to [val (VStr "x") ... ]
and applie s the context to that
and applies infix => to "x", and Val (VInt 1) 09:17
and unPair's 'vCast k' is supposed to make all that happen, right?
why isn't it?
i get, in the resulting binding: 09:18
[(Param {...paramName = "$x"...}, App "&infix:=>" [Syn "cxt" [Val (VStr "Str"),App "&infix:~" [Val (VStr "x"),Val (VStr "")] []],Val (VInt 1)] []), ...]
which means that the pair is not evaluated at all 09:19
jabbot pugs - 1039 - supply default values only when vinalizi 09:23
nothingmuch s/vinalizing/finalizing/... sorry! 09:28
jabbot pugs - 1040 - * sample makefile 09:33
Juerd "Larry 09:37
hemmed for a bit, but decided to stick with true in the end "
That's not the way I read the true thread
nothingmuch me neither 09:39
Schwern That's not the way I read it either. I didn't read it. 09:40
It would be more like " " 09:41
rgs hey Schwern
Schwern Hey 09:42
jabbot pugs - 1041 - * generated binding file 09:43
firzen Does the bin package ok now? 09:48
Is the win32 bin package ok now? 09:53
lumi_ Hi, does anybody else have insane problems with t/magicals/caller_pos.t? 09:54
nothingmuch lumi_: insane? 09:59
i sort of grok that code, i might be able to help
lumi_ Well
clkao nnunley!
lumi_ The tests never finish, because that one just takes all the memory it can get 10:00
nothingmuch ah
i'll check
shit! i comitted traces
lumi_ I saw it grow to 600m before I killed it, I don't think it was planning on stopping
nothingmuch i'll try to figure out what's going on 10:01
latest R?
nnunley clkao:
lumi_ Yes 10:02
nnunley clkao: I made it here!
clkao nnunley: are you being treated well?
nnunley clkao: Only minor hazing. :)
lumi_ Looks like it dies in 2nd test
jabbot pugs - 1042 - Remove calls to trace (sorry everyone!) 10:03
nnunley I leave for a couple of weeks and miss the bootstrap phase of pugs, almost 10:04
lumi_ The indirect interpolation, whatever that means, works
Schwern Norm! 10:05
nnunley Schwern! 10:06
lumi_ IT seems to have stopped doing that, could it have been the traces? 10:17
That's passing strange
autrijus nothingmuch: it's broken yes. 10:23
unPair/isPair that is.
jabbot pugs - 1043 - * require_haskell() landed. dependency a
autrijus so, eval_haskell() will come next. 10:26
then a GHC.pir.
which completes the runtime side of bootstrapping.
Juerd autrijus: How would you describe the outcome of the s/true/better name/ thread? 10:30
autrijus Juerd: the outcome is that it seems that true() is a better name.
Juerd autrijus: The summarizer thinks larry stuck with true, while my interpretation is that we're having so now.
Oh.
Weird.
autrijus and pugs is back to true().
(6.0.12)
Juerd I think I missed some messages then
autrijus that may be the case
Juerd What were the reasons for true? 10:31
autrijus I don't really want to think about it :)
Juerd I see
I'll try google groups tonight
autrijus nod 10:32
jabbot pugs - 1044 - local Makefile.PL 10:33
autrijus hi Jonathan__! 10:34
your binary build of pugs seems to be borken
Jonathan__ Hi 10:35
Yeah, it seems that the build overall is broken on Win32 at the moment. 10:36
autrijus uh?
it works for me.
luqui *bling* (that's an appearing noise)
pasteling "mj" at 147.229.221.107 pasted "WinXP, nmake failed" (33 lines, 1.5K) at sial.org/pbot/8528 10:37
Jonathan__ Just did latest checkout and...
Could not find module `Internals.RuntimeLoader':
autrijus oops, forgot to add 10:38
fixed.
try again?
r1046
mj seems ok 10:39
autrijus cool!
I'll bbiab.
Jonathan__ Yup, it's building now. Working build should hit my site in a minute or so. :)
autrijus woot. 10:40
luqui is it just me, or was that pugsbugs 'foo\' test script very broken? 10:41
and is it still... 10:42
jabbot pugs - 1046 - * add missing module 10:43
pugs - 1045 - * add require -version support stub
mj nmake done, some warnings: In function `svLJ_entry': ghc3624.hc:829: warning: implicit declaration of function `initLinker' . . . 10:44
nothingmuch autrijus: so which is broken?
isPair? or unPair/
and how? 10:45
autrijus I'm not quite sure :-/ 10:46
nothingmuch how would I go about testing it?
i could ghci -Isrc src/Bind.hs, but what would I feed them?
luqui I deleted pugsbugs/string_escaping.t . It was testing incorrect semantics (and the correct ones are already tested plenty) 10:47
autrijus luqui: thanks 10:48
mj: known problem, don't worry 'bout it
nothingmuch: just "svn up", "make ghci"
and type
eval "sub foo (+$x) { say $x } foo(x => 1)" 10:49
nothingmuch i could take the outputs of Show
autrijus that will then output "x1"
this is wrong
we want 1
that's it.
nothingmuch yeah, i know
i broke it down further
autrijus good.
nothingmuch but it's hard for me to say whether the VCast in unPair is not evaling somehow
or if isPair is broken, and thus unPair is not called at all 10:50
but it's one of those problems
autrijus just trace and see? :-/
<- needs to work on $real_work right now
nothingmuch i'll try
but it's a bit hard for me to trace
it being haskell and all that
autrijus sorry for not being very helpful
trace() is your friend 10:51
we have it imported in Internal.hs
jabbot pugs - 1048 - * make ghci 10:53
pugs - 1047 - Removed bogus bug test.
nothingmuch ook, i introduced some crap 10:55
slrupy bindings should be appended
smoetimes they appear twice
nothingmuch will fix
tomyan autrijus: you probably know this, but pugs now runs fine on linux on sparc 11:01
nothingmuch how do i "do" an exp? 11:02
autrijus tomyan: woot. 11:03
nothingmuch: do?
tomyan yeah
jabbot autrijus: do is pretty magic, yes
autrijus val <- evalExp exp
nothingmuch errm
that's my last guess at a solution
ok 11:04
unPair (App "&infix:=>" k exp) = (vCast (castV k), exp)
how do i DWIM?
do i unpair () = do
autrijus what do you want k to become?
nothingmuch a String
autrijus you can also make unpair monadic.
nothingmuch should unpair be evalExp'ing?
autrijus str <- fromVal k
err.
nothingmuch i think this is because of that fix
autrijus let me think real quickly 11:05
yes.
nothingmuch that autoquotes lefthandside
autrijus it should do that.
it should evalExp k.
nothingmuch unPair (App "&infix:=>" k exp) = do
kVal <- evalExp k
return (vCast kVal, exp)
right?
do i just 'import Eval' at the top? 11:06
Module imports form a cycle for modules:
Eval Bind
=/
does Bind.hs need to be merged with Eval.hs? 11:07
? 11:08
autrijus er. uhm. 11:09
nothingmuch #haskell people say i'll need to merge 11:12
oh, shapr is here, he said that =)
autrijus no.
you can do this instead
move evalExp into AST.
nothingmuch oh my
autrijus that's the correct course of action.
just move it from Eval to AST. 11:13
nothingmuch ok, why not =)
autrijus it's nothing much =)
nothingmuch it's bound to do less damage than i already have ;-)
shapr punny
nothingmuch putting it just above findSym 11:14
it looks err, like a logical place
nothingmuch noticed he is very hesitent
'err' and 'uhm' all the time
shapr aha - www.haskell.org/ghc/docs/latest/htm...-recursion 11:16
yup, just as troublesome as I remember. 11:17
nothingmuch hmm 11:21
Inferred type: Eval Val
how do i make that into a Val?
shapr eval it? 11:22
shapr is guessing
nothingmuch that's after i've evalExp'ed it =)
11:31 shapr is now known as TheShapr 11:34 TheShapr is now known as shapr
mj win32 semm ok - r1048, WinXP, nmake, ActivePerl - 100/2809 subtests failed, 96.44% okay. 11:39
nothingmuch 100 subtests is the correct number, IIRC 11:40
jabbot pugs - 1049 - r15205@kybristedi: gugod | 2005-03-23 11:43
gugod stevan: about ghc version discussed early , turns out it was my fault. I didn't noticed that I have some local modification which make compilation failed. ghc 6.4 compiled fine 11:46
nothingmuch what is the syntax i am trying to get? 11:49
unPair pair@(App "&infix:=>" _ _) = do
i want pair to be that type
shapr Oh that was the SchwernLikesDarcs guy. 11:53
nothingmuch yup
he's really a perl guy
11:53 cnhackTNT|away is now known as cnhackTNT
nothingmuch www.perl.org/yapc/2002/movies/themovie/ 11:54
he's the guy talking about farmers
kungfuftr is there a way to get a list of todo tests? 12:25
nothingmuch grep -r todo_ t/
kungfuftr =0) 12:26
well... grep -r todo_ t/ | grep -v .svn 12:27
2113 apparently
nothingmuch =) 12:28
shapr kungfuftr: www.scannedinavian.org/~shae/kung.fu.jpg 12:29
nothingmuch wtf?!
shapr sorry, completely off-topic 12:30
nothingmuch no, i'm really curious =)
do you know the origin of that pic?
shapr nope
nothingmuch it just doesn't make sense
oh well
shapr looks cute, I dunno if it's gimp'd or not. 12:31
kungfuftr anyone know if mugwump made it to tapei yet? 12:33
nothingmuch gah! 12:34
how do you make an anything out of an Eval Val?
elmex oi 13:12
jabbot pugs - 1051 - examples.t works now. 13:13
pugs - 1050 - Added some new tests.
Limbic_Region iblech - you about? 13:18
iblech Limbic_Region: ? (don't understand) 13:20
Limbic_Region oh - was just asking if you are around 13:21
iblech Limbic_Region: ah, yes, I am :)
Limbic_Region japhy recently was on a quest to pick n distinct colors and I remember the screen shot from iblechbot 13:22
he has since solved his problem, but I wanted to ask what you used anyway (in case it was different)
nothingmuch that's a nice problem
iblech Yes, the color algorithm iblechbot uses is different 13:23
nothingmuch thinks about distributing based on distance
iblech First, the whole log is read to find out which nicks were online at the same time
Limbic_Region iblech - is the source public?
iblech Yes, an old version is online ATM, will upload the current one, a sec. 13:24
Limbic_Region www.perlmonks.org/index.pl?node_id=441359 # is where japhy posted what he used, feel free to reply if you have some insight (which I thought you might)
iblech m19s28.vlinux.de/iblech/iblechbot.tbz2 -- the interesting parts are weblog.pl (the webserver) and Heinz/Colors.pm 13:27
Then, an interference graph is created, bases on the information of step (1) 13:28
And this interference graph is then collapsed to the minimal number of colors necessary
Limbic_Region thanks - will let japhy know if you don't post 13:29
iblech www.perlmonks.org/index.pl?node_id=384347 might be interesting, too
I'll do
Limbic_Region iblech - I remember that thread but I didn't remember you as the author 13:36
elmex yaho, wanna get some 13:37
iblech www.perlmonks.org/index.pl?node_id=441758 13:39
101 subtests fail | pugscode.org <<Overview Journal>> | pugs.kwiki.org | logged: xrl.us/e98m 13:40
autrijus nothingmuch: still there? 14:17
nothingmuch: how do you get an Int out from an IO Int?
by binding it!
int <- io_int_thing
so, to get an Exp from an Eval Exp, you do 14:18
exp <- eval_exp_thing
nothingmuch autrijus: uhuh
ok 14:19
scw autrijus: I always have ghc check my code when Monad is involved.. :p
autrijus :p 14:20
nothingmuch so what does it really look like?
scw never knows if it's correct.
autrijus val <- evalExp exp
str <- fromVal val
nothingmuch unpair (App "&infix:=>" key value) = do
k' <- evalExp key
value <- k'
...?
autrijus no
jabbot nothingmuch: ... ōæ½xACOōæ½xB3oōæ½xBCĖ¤lōæ½xB6ōæ½xDC
nothingmuch it doesn't make sense to me
autrijus value <- fromVal k'
nothingmuch oh
autrijus str <- fromVal k' 14:21
int <- fromVal k'
it all works
nothingmuch what is App "infix:=>" btw
it seems to be, err, weird
it has a dangling thing
autrijus it is just this pair constructor thing.
nothingmuch the second element, which i dunno what it does
i know, it's a perlop
App seems to want 3 things
what to apply (=>)
apply on what (a list with two elems)
and ....? 14:22
autrijus and a series of arguments not related to invocation
in this case, always empty.
nothingmuch ah
autrijus App op invs args
nothingmuch ok
since => is a multisub
right?
autrijus right.
it is a multisub with 2 invocants.
nothingmuch i might actually grok pugs internals at some point ;-)
autrijus you already do :) 14:23
nothingmuch much more hopeful than p5 guts
autrijus that is very true.
p5 guts is like impossible.
you can understand a code path
but you can't really reason about the whole of it.
or, maybe you can, but I cannot.
nothingmuch can't 14:24
tried reading some parts
knowlege is too spread out, i think
a vCast is a context sensitive thing 14:25
making a <context expects this type> out of a Val?
unPair (App "&infix:=>" (keyExp : valExp : []) _) = do 14:26
keyExp' <- evalExp keyExp
yields: Couldn't match `(,) String' against `ContT Val (ReaderT Env IO)'
Expected type: (String, t)
Inferred type: Eval Val
In the application `evalExp keyExp'
retrospectively nopaste =P
autrijus er.
you want to return (Sting, Exp) 14:27
nothingmuch yes
autrijus make it
Eval (String, Exp)
nothingmuch but i'm not returning till much later
autrijus because you are now inside the eval monad
and you can't escape the eval monad.
nothingmuch unPair should return Eval (String, Exp)? 14:28
autrijus if you to the eval inside there, yes.
nothingmuch ok
autrijus but that makes the whole Bind.hs monadic.
which is sort of what I wished to avoid.
nothingmuch i think it's unavoidable
it's a thing that happens
autrijus subcall( [$name1, $name2](rand 2) => 3 )
nothingmuch it takes avlues 14:29
autrijus yeah.
nothingmuch and it connects them
you could pre unPair, before actually binding
i think
autrijus I think that makes a lot of sense.
when you are at the caller site
first examine the pairs
and eval the key part
nothingmuch what does, monadic binding, or preunpairing?
autrijus preunpairing
nothingmuch then bind?
zh
ah
autrijus then do a nonmonadic bind
so you always have pure Val
nothingmuch how do you preunpair?
you obviously have the thing that does App unPair args 14:30
(and invs)
i think i can handle it
but who does App
Eval's apply? applyExp?
autrijus reduce
but you just eval them.
nothingmuch ok
autrijus using evalExp
so basically
extend isPair
to recognize App "&infix:=>" as well
nothingmuch how icky will this be in the long term?
autrijus I think it will be just fine. 14:31
nothingmuch isPair (App "&infix:=>" _ _) = True
that much I did ;-)
but actually we don't want that, do we?
autrijus good. did you check it in?
we probably want just that.
nothingmuch no, because that causes unPair to be fatal =)
in that case bindNamed can't work
clkao autrijus: what do i expect today?
nothingmuch because it has Exps
autrijus what?
jabbot autrijus: what is App "infix:=>" btw
nothingmuch when it should be getting pairs
gugod owns jabbot, right? 14:32
autrijus right. you are free to ignore it
nothingmuch i think i will try to feed it defs that contain 'gugod--' ;-)
it's RSS commit announce is useful 14:33
autrijus nothingmuch: let me try
nothingmuch but everything else is an annoyance
autrijus a sec.
nothingmuch let you try what, the pair fixing code?
autrijus I checked in the App &infix code. 14:34
r1052
nothingmuch i could have told you that borks ;-)
in fact, i did =D 14:35
i think it's not the solution we want
autrijus ./pugs -e sub foo (+$n) { say $n } foo( n => 3 )
nothingmuch either isPair and unPair take the same thing
autrijus now says "3" for me.
nothingmuch ah
then what is the diff, really?
it's not just isPair that was fixed, was it?
autrijus isPair (App "&infix:=>" [(Val _), _] []) = True
unPair (App "&infix:=>" [(Val k), exp] []) = (vCast k, exp)
now that only works for simple values as keys. 14:36
$n => 3
will totally bork.
nothingmuch ah
autrijus so pre unpairing is still needed
nothingmuch that's what I meant =)
autrijus just want to make clear the point :)
nothingmuch ok =)
isn't messing with App ... after preUnpair a violation of separation of concerns?
i mean, we both expect it to be dealt with, and deal with it ourselves 14:37
anyway, i'll see what i can do for preunpairing
is there any chance of it breaking anything?
autrijus the correct thing is to preunparirng
and preevaluation into simple Syn "=>" pairs
that guarantees a simple Val in the LHS
nothingmuch why syn pairs?
is that what a VPair is?
autrijus just so Bind.hs knows how to deal?
VPair is Val, Val 14:38
we want Val, Exp
nothingmuch in the long term, too?
autrijus you can arguably turn Exp into Val VThunk
and get Val Val
in that case sure, make them simple VPair vals
is the long term best solution
because that decouples the caller site with binding site.
nothingmuch i believe in the long term
so this is the aforementioned Param, Exp to Param, Val fix
which i don't know where to start doing 14:39
=)
elmex autrijus++
nothingmuch++
autrijus nothingmuch: sure :)
elmex so cute
autrijus what is so cute?
nothingmuch cute?
Dabian Emacs rocks!
autrijus and yes, that is the aforementioned fix.
greetings Dabian. 14:40
or rather, closely tied to.
nothingmuch autrijus: i'll work on it then,
nothingmuch reads some more haskell...
Odin-LAP Dabian: Does it?
autrijus nothingmuch++
nothingmuch Eval.hs's reduce, and apply is what I want, right?
or rather, the callers of apply
Odin-LAP :D
autrijus yup.
nothingmuch perlbot: highest karma
perlbot The top 5 karma entries: autrijus: 38, nothingmuch: 36, ~brad2901: 26, stevan: 22, C: 22
nothingmuch damn
autrijus is still ahead
two days ago i had an edge of 1 ;-)
Dabian Odin-LAP: Yes!
autrijus :p 14:41
pjcj Dabian: pugscc --elisp works?
autrijus see, that parrot compile things is popular
Odin-LAP Dabian: Pffth. I don't believe you.
autrijus ooh. want to work on it?
--elisp that is
that will so rock
Dabian pjcj: try it :)
theorbtwo I'm afraid I'm to blame... but I think --elisp would indeed so rock.
Odin-LAP Hm. 14:42
elmex you're so cute
nothingmuch that should allow for actual syntax highlighting by means of embedded perl, right?
Odin-LAP That'd be ... interesting, to say the least.
elmex C++
nothingmuch elmex: some people might find that offensive ;-)
autrijus nothingmuch: sure
elmex what is about C++?
nothingmuch C-- is also a nice backend
in theory
autrijus elmex: we alreay compile to GHC
which compiles to C--
which compiles to C
elmex nothingmuch: that wasn't offensive. being cute is a very good thing
nothingmuch i find it cute, being cute and all 14:43
in fact, i look cute, and try to act cute, and stuff
elmex ;)
cool
err..cute ;)
stevan autrijus: any timeline on the s/// perl5 regexp support?
Odin-LAP 'cute', you say.
nothingmuch but that's because i realized early on i have no chances at looking cool
jabbot pugs - 1052 - * pair fixing code
nothingmuch or buff
=) 14:44
Odin-LAP just looks like an idiot.
Easiest thing ever. Takes no effort at all. ;)
autrijus stevan: you want backref to $1 and $2?
and s///g?
give me a priority list? :)
on s/// that is 14:45
stevan the backref is alreayd there I think
at least it seems to work :)
autrijus right.
s/(foo)/$1/g though
is another matter.
stevan s/// would be really really really nice
I am not so concerned about s/(foo)/$1/g
Odin-LAP Erm. 14:46
stevan thats nice and all, but could wait (at least for my purposes)
Odin-LAP That'd be s:g/// now, wouldn't it?
stevan Odin-LAP: yes
nothingmuch is half way through his 3rd liter of water today
autrijus sure.
nothingmuch is impressed with himself
Odin-LAP nothingmuch: What, only three?
stevan s:g:perl5/// would be nice
theorbtwo s:perl5:g///, to be more specific.
autrijus is it still bound by ~~ ?
nothingmuch Odin-LAP: i tend to drink too little 14:47
metaperl nothingmuch, why drinking so much water?
autrijus adverbs order doesn't matter
stevan bound by? I am sure I understand?
nothingmuch metaperl: i live in the desert, and i didn't drink enough yesterday
metaperl nothingmuch, where do you live?
Odin-LAP autrijus: I don't think any other operator would fit.
nothingmuch Beer Sheva (suburb of thereof, to be exact)
Odin-LAP nothingmuch: Ah.
metaperl what country is beer sheva in?
theorbtwo You live in the god of beer?
autrijus god. 14:48
mkirank im trying to install pugs at home on my linux machine .. this is the files that i have to download right www.haskell.org/fedora/haskell/1/i3...2.i386.rpm and www.haskell.org/fedora/haskell/1/i3...2.i386.rpm
autrijus look at S04!
theorbtwo Er, the suburbs of the god of beer...
autrijus a native "subst" object previously unmentioned!
nothingmuch well, either in Tennessee somewhere, or in israel
autrijus what's with that?
metaperl i see, are you jewish?
nothingmuch metaperl: err, that depends on who you ask
metaperl has a slight interest in kabbalah
nothingmuch mkirank: the second i think
i'd say, yes, culturely, not religeously 14:49
state of israel says no
metaperl oh, where is the wailing wall?
nothingmuch mom converted from catholicisim
but to the conservative stream
in the 80s
mkirank nothingmuch only the second is it ?
nothingmuch when only orthodox judasim was recognized as valid by the state
metaperl i thought you had to be born as a jew...
nothingmuch mkirank: the first is for opetron64 and friends, i think
well, in theory yes
you inherit it from your mother 14:50
stevan metaperl: I think your mother has to be jewish
nothingmuch if she converted then you count as a jew
metaperl my impression of israel is that you could be blown up at any moment... no offense intended but that's all I see about Israel on the news here
nothingmuch my dad is jewish, officially
autrijus stevan: care to ask on p6c about how the "subst" obj is supposed to work?
because it's only mentioned once
nothingmuch metaperl: that is a bad impression, i think, for either side
it's really not like this
autrijus and I have no idea at all about its semantics.
stevan p6c? or p6l?
metaperl that's good to hear
autrijus well it's in Syn, we're implementing it, so p6c maybe
nothingmuch chances of being involved in a direct conflict with arabs is very low, even if in the army
Odin-LAP nothingmuch: What's your view on that whole mess? :>
metaperl Syn? as in Synagogue :)
theorbtwo Well, the theory, I think, is that conversion happens when somebody who was always jewish but didn't realize it finds out. 14:51
nothingmuch chances of dying in a bombing is much lower than car accident deaths
stevan autrijus: ok, I will re-read Syn 04 and ask
autrijus danke!
nothingmuch etc etc
but that stuff doesn't make new
s
i never head 'man got hit by car in australia'
Odin-LAP: rational left wing, i think
i believe that we can cautiously approach a peace if people that want to spoil it are under control
and we don't get overzealous, and then say "Well, they started it" when it all false to bits 14:52
Odin-LAP Heeh. They aren't, right now. :p
metaperl arafat's death was a good thing for peace if you ask me
nothingmuch metaperl: perhaps... we shall see
right now it's still too chaotic to tell, IMHO
but then again, he was not too hard to improve on
Odin-LAP metaperl: Yes, but it won't mean anything until the nuts on the other side get out of the way, too.
Which, frankly, doesn't seem too likely. :( 14:53
nothingmuch i really have high hopes about our side bucking up this time
it seems so close, and so dead serious
mkirank i get a ghc64 is needed by ghc-6.4-2 .. so i guess i have to download both
theorbtwo His death was, but the Israelite government messed it all up by trying to control his funeral.
nothingmuch likely someone will screw things up, and something will get bombed
but experience tells me otherwise
jabbot pugs - 1053 - add test for var in key side of pair
nothingmuch and sharon could say "well, i tried, and they didn't help themselves" 14:54
and we'd be back in spring 2002
anywho, i dislike discussing politics, i tend to get carried away and then regret it 14:55
to cut to the point:
i'm more pro arab than most, but not in an "oh, we're so barbaric" sort of way. I think both sides bear a lot of guilt, or at least should, and will have to face it in the next decade or things will never get resolved 14:56
Juerd ]}} 14:59
stevan autrijus: actually subst is mentioned again in S05, all the way at the bottom 15:02
it seems to be a method for string objects
$str.subst(//, "replacement") is the example given 15:03
theorbtwo Ah, that'd make more sense.
~~ is "smart match", and s/// isn't matching anything.
stevan there is also a match() method
$stc.match(//);
theorbtwo Right; $string ~~ $rule is syntatic sugar for $stc.match($rule)... I think. 15:04
(Though I'm not clear why that's not $rule.match($stc).)
theorbtwo realizes he's making this up as he goes along, stops.
Odin-LAP I think that's how Perl6 was designed, you know. 15:05
theorbtwo That's how everything was designed, odin.
Odin-LAP :p
iblech Hm... latest r1053 fails *many* tests, "Fail: Prelude.last: empty list"
autrijus so what is "subst" as a type? 15:06
nothingmuch: you broke the tree
nothingmuch how did I break it?
Odin-LAP theorbtwo: Nah. Many things, but not everything, I think...
autrijus or maybe I did.
theorbtwo LISP, in purticular, was never designed to be actually /run/, and the guy who designed it was quite surprised when somebody made it do so.
stevan autrijus: still not 100% sure, I am going to read some more so I can ask the question intelligently :)
autrijus sure :)
nothingmuch i think not 15:07
my last ci was removing trace
and that passed tests
Juerd 16:09 < theorbtwo> Right; $string ~~ $rule is syntatic sugar for $stc.match($rule)... I think.
16:09 < theorbtwo> (Though I'm not clear why that's not $rule.match($stc).)
theorbtwo: Shouldn't matter. $regex ~~ $string DWYM
nothingmuch expect for a one line change to sub_named_params.t
Juerd Most smart matches are reversable
Odin-LAP theorbtwo: Lisp is an oddity. It was just a mathematical formalism that wound up having use as a programming language...
nothingmuch and the correpsponding change to plan
Juerd Only those with special syntax (i.e. hash subscripts) are not 15:08
theorbtwo Right, because ~~ is more-or-less a highly funky equality operator; all the basic properties of equality operators should more-or-less hold.
autrijus except when it is not. 15:09
marked with *
Odin-LAP Smart match is very well described with the term "funky". ;)
Juerd All those new Perl 6 features are funky
Those from other languages are boring 15:10
theorbtwo I'm going to get dressed, find some cash, and buy some milk... see you in 30 or so.
Odin-LAP Heeh.
Juerd theorbtwo: years?
theorbtwo: hours? minutes?
Odin-LAP Juerd: Macros are boring? :>
Juerd seconds?
autrijus nothingmuch: not your fault. it's me.
Juerd Odin-LAP: Quite.
autrijus apologies.
nothingmuch autrijus: =)
Juerd Odin-LAP: Handy and useful, but boring.
nothingmuch the pair fix?
theorbtwo minutes. Possibly much less, depends on if I feel like buying other things, and how long it takes to find cash.
autrijus weird. 15:11
Odin-LAP Juerd: Hm. I guess that's one perspective. I think it's going to be interesting to see how they mix with all the other stuff that's being thrown into the mix.
theorbtwo I suspect everyone will find the new perl6 stuff much less wierd after we've actually programmed with them for a while.
Odin-LAP But taken alone, I guess I'd agree. :)
theorbtwo The same way lisp programmers don't find the lack of syntax and such funky. 15:12
Odin-LAP theorbtwo: They usually acknowledge that it's weird, compared to other programming languages. :>
nothingmuch good post: www.perlmonks.org/index.pl?node_id=440730 15:17
i've wanted to answer a question like that for a long while 15:18
it has implications about robustness, security, performance, etc
autrijus the test fix has been worked around.
ironically it's cased on write_log wkring.
working.
nothingmuch autrijus? 15:19
jabbot nothingmuch: autrijus is still ahead
autrijus please help me untodo.
t/subroutines/sub_named_params.............ok
4/20 unexpectedly succeeded
nothingmuch what is gugod--
what?
jabbot nothingmuch: what is gugod--
nothingmuch hah!
lumi That's not very nice..
But then, neither is the bot
nothingmuch he should fix his bot =)
i've decided not to ignore it 15:20
lumi Heh
nothingmuch because then I miss the commit messages
autrijus it is worth noting that jabbot.blogspot.com exists.
nothingmuch oh, it's a precanned rss<->irc bridge?
boy, that website makes so much sense for me.... =)
stevan autrijus: what exactly are you wondering about with subst? 15:22
the more I read the less I think it will be relevant until you implement the perl6 rules 15:23
jabbot pugs - 1054 - * work around the Prelude.last bug cause
stevan freely admits that he is totally missing the point though
autrijus stevan: say I have this 15:24
s:perl5:g/foo/bar/
is that a "subst" object?
does a subst object .hasa rule object?
Juerd Is it really :g with :p5?
autrijus what exactly does a subst object do?
stevan ok 15:25
autrijus can I get a rule object from it?
how does it stringify? etc.
stevan and if its not an object, and just a Str method then?
autrijus how is a method possible as RHS of ~~?
stevan RHS?
Right Hand Side? 15:26
autrijus right hand side
is ~~ s:perl5:g/a/b/
the same as
~~ .subst(rx:perl5/a/, "b") ?
or
~~ .subst(rx:perl5/a/, {"b"})?
questions questions.
stevan I see now
stevan goes off to try and compose a mail on this insanity :P 15:27
nothingmuch autrijus: should i raise "ok(!(eval '&foo.assuming(1)'), "can't curry without named params");" passing to p6l?
the way we bind currying positionals does make sense
backlink comment: # L<S06/Currying /takes a series of named arguments/>
autrijus sure. 15:28
go ahead.
but
phrase it as a perl6 question :)
(as in, language proposal about how .assuming can also behave)
nothingmuch i think i would rather ask it as: 15:29
it says so
we do it so that it can be otherwise 15:30
this is because binding works like:
?
sorry
"is that a bad thing, or a good thing?" was what I meant to type
autrijus that works too.
stevan: s:perl5/// is landing. no :g :i yet 15:33
or :m :s
but trivial.
stevan autrijus: thanks :)
autrijus++
jabbot pugs - 1055 - More tests.
autrijus glad to be of help ;) 15:34
stevan nothingmuch++ # just so he won't feel bad :P
autrijus needs to journal and sleep soon
nothingmuch stevan++
=)
stevan nothingmuch: no I haven't done anything today
nothingmuch blah, whatever
stevan perlbot karma mom
perlbot Karma for mom: 1
nothingmuch i haven't done much either
stevan nothingmuch: thats your mom :) 15:35
nothingmuch my mom?
stevan we ++ her for giving birth to you :)
nothingmuch heh
=D
stevan when you got her at the train yesterday :)
nothingmuch mothers++
that was yesterday? not the day before?
yesterday i didn't even unpack the puter at home, i think
just read a book, and went to bed
stevan nothingmuch: hard to say, my yesterday is not always your yesterday :P 15:36
damn time zones
nothingmuch i think i picked up mom around 45 hours ago
so ;-)
stevan well tell mom we all say "hi" 15:37
autrijus patches welcome to implement the rest of :m :s etc
just parse for adverbes and feed them to MkRegex
nothingmuch ok =)
autrijus pugs> my $x = "pugs"; $x ~~ s:perl5/u.[st]/arrot/; $x 15:38
'parrot'
stevan autrijus: very cool, now I can finish File::Spec
did I mention how UGLY File::Spec is?
autrijus no. you did not.
stevan its really really UGLY
autrijus t1056.
enjoy!
s/t/r/
stevan danke; graci; thank you :) 15:39
autrijus =)
Day 51: Inline haskell, s:perl5/// 15:42
not too bad for a day :)
sadly ingy did not commit his makefile.pl magic for inline()
iblech BTW -- I get some warnings when compiling (GHC 6.2, Linux): sial.org/pbot/8541
autrijus yeah they're expected. 15:43
iblech Ok
theorbtwo is back.
jabbot pugs - 1056 - * s:perl5/// support.
nothingmuch ok, sent to p6l 15:44
autrijus iblech: I attemped a fix; try again please? 15:45
heads-up 15:48
it may be the case that the whole evaluator will be moved into compiler
once Compile.Haskell is working
so the evaluator does on-the-fly compilation
and always run code at fast speed.
that will also save us from doing Eval.hs and Compile.Haskell separately.
plus a set of very nice things.
nothingmuch how does this hinder BEGIN {}, etc? 15:49
autrijus but it will be done by essentially taking Eval.hs code and add [| |] for each reduce rule
iblech sial.org/pbot/8542 -- new warnings
autrijus nothingmuch: that is so we can get BEGIN work.
nothingmuch ride leaving
ah =)
ciao everyone
home &
autrijus iblech: should be fixed now. try again? 15:52
jabbot pugs - 1058 - * revert to old include style for 6.2.2. 15:53
pugs - 1057 - * warning fixes
iblech :) Only one warning left: 15:55
Compiling RRegex.PCRE ( src/RRegex/PCRE.hs, src/RRegex/PCRE.o )
/tmp/ghc24855.hc: In function `RRegexziPCRE_zdwccall_entry':
/tmp/ghc24855.hc:498: warning: assignment discards qualifiers from pointer target type
autrijus I have no idea :)
maybe it's one of the signeness things.
you're welcome to track src/pcre/ down :) 15:56
iblech somebody with C skills may do that :) 15:57
115 subtests fail | pugscode.org <<Overview Journal>> | pugs.kwiki.org | logged: xrl.us/e98m 16:00
jabbot pugs - 1059 - * fixup inline syntax a bit 16:03
elmex oi 16:11
iblech luqui: IIRC, you created a perl6.vim syntax highlighting script :) -- URL? 16:13
jabbot pugs - 1060 - * add credit for GHC-licensed RuntimeLoa
stevan luqui: I have a quick question for you 16:15
when you have a second
luqui stevan: hmm? 16:23
stevan luqui: you removed the string escape test
for test\'
why?
luqui yeah, it was wrong.
stevan should that not work?
luqui perl -e "print 'foo\'"
jabbot pugs - 1061 - unTODO-ed tests; added in the File/Spec.
stevan oh 16:24
whoops my bad
luqui (not to mention that you were saying "$foo = 'hello\'", so the newly defined $foo was being interpolated, but that was fixable)
np
stevan perl -e "print 'foo\\'"
that does work
luqui yep, and in pugs
stevan pugs -e "say 'foo\\'"
it fails
luqui really? 16:25
stevan unexpected end of input
expecting "\\'" or end of string
NonTerm SourcePos "-e" 1 12
luqui i thought I tested that
make sure that your shell isn't turning \\ into \
stevan sorry, that should have been the test
luqui echo "say 'foo\\'"
stevan luqui: how would I do that?
prints say 'foo\\'
luqui goes to test it in pugs 16:26
stevan I actually ran into a number of weird things with \'s in strings
luqui huh... my bad
stevan but some of them were me :)
luqui that deserves a test
stevan not a big deal, I was testing for the wrong thing, so you were right to remove
do you want to look into it more? or should I put in the test again? 16:27
luqui put it back in whether or not I want to look into it 16:28
but I probably will... tomorrow (my bedtime is approaching)
iblech, vim syntax url: luqui.org/public/perl6.vim
iblech luqui: Thanks much :)
luqui it's very, very out of date 16:29
stevan luqui: where are you located?
luqui colorado
stevan bedtime at noon? 16:30
luqui yes, it's about 9:00 am
and yes, it's almost my bedtime
stevan whoops, got my timezones backwards
luqui it's spring break
stevan LOL
I just got up
ahhh
I am EST
connecticut to be exact
but I am not in college so I have to work :P
PerlJam stevan: give us your exact latitude + longitude so that we know where to send the missles ;-) 16:31
metaperl stevan do you work in CT or NY?
lol@PerlJam
stevan metaperl: the company is out of NY, but I work mostly from home in CT
stevan prepares his bomb shelter in case PerlJam is serious 16:32
elmex ?
luqui Perl guided missles
of course he's serious
PerlJam stevan: does this pugs stuff dove-tail with your work or is it just for fun?
luqui Gives new meaning to the "D" in TMTOWTDI 16:33
stevan PerlJam: mostly for fun right now
I am at the end of project, so I have some time
PerlJam luqui: new meaning? No, that's the same old meaning it always had it's just that people don't realize it (until it's too late ;)
luqui hehe
jabbot pugs - 1063 - * Upgrade to CVS version.
pugs - 1062 - * Jump ship to DynamicLoader
PerlJam I wish I could find a legitimate excuse to do this for work so I don't feel guilty when I spend work time playing with pugs. 16:34
metaperl stevan, what dynamic HTML generation toolkit do you use at work?
stevan PerlJam: my boss is very cool with open source work 16:35
luqui what's that perl module that returns more specific information about the context?
stevan he knows that we rely on it, so if I have "free" time, I am allowed to use it for OSS stuff
luqui: Want?
metaperl: I used to use HTML::Template, now we switched to TT because I can do [% user.getFirstName %] and stuff 16:36
luqui stevan: that's the one
stevan PerlJam: I would love to use Pugs at work if I could, but we do mostly mod_perl (handler-style) and mod_pugs is not even on the radar yet :) 16:37
PerlJam stevan: similar situation here.
stevan PerlJam: where do you work?
assuming you can say, and its not Top Secret :P 16:38
PerlJam stevan: I work at a research institute within Texas A&M University-Corpus Christi.
stevan nice
autrijus there's mod_parrot and there's mod_haskell.
PerlJam Mostly we collect, process, store, process some more, etc. environmental data. 16:39
stevan autrijus: and mod_pugs ?????
maybe YAPC::NA??
PerlJam stevan: Are you challenging him? ;)
stevan PerlJam: my job is to challange him :) (aka write tests)
autrijus stevan: err. you compile to haskell and run it with mod_haskell.
or compile to pir and run it with mod_parrot.
I believe mod_haskell can work with the --pugs backend. 16:40
the other two backends will catch up.
stevan wow
PerlJam autrijus: that's the thing about actual high-volume output ... It always gets exaggerated and you become the lightning rod for any new cool ideas.
(not that this is a bad thing :-) 16:41
ninereasons Is there any chance that in perl6 we will be able to declare multiple assignments? I've often wished that I could say something like "my ($x = $y = $z) = $val;" to initialize mutiple equivalent variables in a single statement.
integral my ($x, $y, $z) = $val x 3 ;-)
autrijus journal up.
integral my $x = my $y = my $z = $val;
autrijus sleeps. :)
PerlJam ninereasons: er, what's wrong with ... what integral just said
stevan night autrijus 16:42
luqui integral: in p6 that's my ($x, $y, $z) = $val xx 3; 16:43
the -) on the end is a syntax error :-p
integral had a habit of just picking syntax at random ;-)
PerlJam luqui: couldn't we get something like my ($x,$y,$z) =<< $val; so as to not have to explicitly state the number? 16:44
integral wouldn't the hyper be on the other side? 16:45
PerlJam yeah, I guess so.
But my ($x,$y,$z) >>= $val; really looks like it's doing something different than what's wanted. 16:46
integral maybe we need a combinator to turn $val into a infinite constant list 16:47
PerlJam (the "flow" appears rightward rather than leftward)
integral xx inf?
PerlJam integral: $val xx Inf + lazy eval
nothingmuch evening 16:48
stevan nothingmuch: howdy
PerlJam buenos dias nothingmuch 16:49
ninereasons sorry, I was away.
nothingmuch that was a reply, not an announcement
stevan en Espanol 'naddamucho' :)
nothingmuch evening
stevan hey gaal 16:50
nothingmuch autrijus seems to overestimate my work
i don't give that much time to pugs
PerlJam nothingmuch: why not? Everyone else tends to overestimate his. Learn to go with it ;)
ninereasons fer heavensake. I didn't know that that worked, integral.
nothingmuch it makes me come out as, err, someone who is really devoted 16:51
i don't want people to expect me to do things
stevan nothingmuch: the commit logs speak differently
nothingmuch i work on it when i get a spare 5 mins
PerlJam nothingmuch: well, stop getting spare 5 mins
nothingmuch and in the afternoons in bigger chunks
PerlJam Or only use your spare 5 mins on pugs sparingly ;)
nothingmuch PerlJam: why? i enjoy it =) 16:52
anyway, now is afternoon, and after mail i will pre unPair things before apply 16:55
and that way we get proper named params
and currying that works 100% of the time
luqui PerlJam: my ($x, $y, $z) >>=<< $val; will do it now 16:57
... unless $val happens to be an array reference (/me wants to get that changed)
nothingmuch don't you mean my ($x, $y, $z) = >>=
$val 16:58
without the <<?
luqui no. binary hypers always have them on both sides, even if you're only hypering one side
nothingmuch so in that case isn't '.' binary 'apply method', which gets a method and an object, and applies?
luqui that's one way to think of it 16:59
nothingmuch rereads hyper ops
luqui but since . has special parsing rules on its right side, another way to think of it is as a postfix
which is apparently how Larry think of it
s/k/ks/
theorbtwo The problem with thinking of . as an infix operator is that it doesn't take anything normal on it's RHS. 17:00
nothingmuch i can grok that
luqui in other words, $obj.<<@meths is illegal
nothingmuch although first class methods and method calls should probably be there too, while we're at it ;-)
luqui nothingmuch: I don't understand? 17:01
nothingmuch is there a way to implement a different WALK?
it would be nice if you could, for example, change the semantics of what is a method dispatch
given the MMD dispatch
luqui definitely. I don't think anybody has any idea how.
nothingmuch or whatever
luqui oh, there's DISPATCH
nothingmuch how does smalltalk do it?
does it do it?
luqui which alters single dispatch... 17:02
nothingmuch i am under the impression that it should, given the way people talk about it
luqui doesn't know smalltalk
luqui should learn it though
nothingmuch is busy enough with haskell =)
luqui no kiddings
haskell is a... difficult language
nothingmuch is starting to enjoy it 17:03
can read basic things now
sometimes even without help
i don't "get" monads yet, though
luqui I've never learned a language by having to learn to read it
I've always learned by having to write
so this is a new experience
theorbtwo I still think haskell would be a very nice language if it got reasonable parens and commas.
nothingmuch theorbtwo: in that case $ is your friend, no? 17:04
ninereasons I get frustrated when examples for ghc won't compile in hugs, and visa versa.
luqui and if it had any psychological footholds
and all these years of reading perl really throws me off when I see a $
nothingmuch i bet if i read python now it'd confuse me
luqui no other languages use $, so it's my "perl marker"
nothingmuch but haskell looks /very/ different from perl
luqui: i get that with bash, actually 17:05
theorbtwo No, because I've never quite figured out what $ is quite supposed to do.
nothingmuch i use the same keystrokes
so, i sometimes confuse myself and switch to perl
theorbtwo: (foo (bar param)) in perl would be said foo(bar(param))
luqui f a b === ((f a) b)
f $ a b === f (a b)
nothingmuch and in haskell can be said foo $ bar $ param
or more concisely foo $ bar param
or not =)
foo $ (bar param) which is just plain stupid 17:06
theorbtwo So $ acts like parens from that point, forward as far as possible to the end of the line.
nothingmuch yup
which usually works quite well
luqui it's a right associative apply, rather than a left-associative one which is the default
nothingmuch you can also infix things if it helps readability
luqui most languages apply right-associative (the ones that don't use parens, like perl, that is)
theorbtwo By using backticks.
nothingmuch uhuh
like list `zip` other 17:07
although that's not the same kind of zip
elmex_ ?
17:07 elmex_ is now known as elmex
luqui that would be a nice thing for perl to have 17:07
unfortunately, perl is out of keyboard
nothingmuch that's not hard, is it?
luqui I'm not sure adding another wdti for sub calls is buying us anything though 17:08
nothingmuch gather { for zip(@list; @list) -> $p1, $p2 { take ($p1 => $p2) } }
what do you mean by that?
luqui every programmer will have his favorite, and every programmer will have to learn all the wtdis to read code
nothingmuch we could make a nice pair_up method 17:09
luqui foo($a, $b); $a.foo($b). foo $a: $b. ($a, $b) ==> foo
those are all the same, but subtly different
oh, (foo $a, $b)
nothingmuch and tuple_up, which would really mean array_up
err s/method/sub/
user sub, mind you
(&foo.assuming($a, $b))()
i don't want that n the core
or however you dereference that 17:10
(not quite sure yet)
luqui &foo.assuming($a, $b).()
nothingmuch ah
isn't $a: $b and $a, $b radically different?
i've been playing with parameter binding these last few days, in pugs
we have invs and args, which are entirely different things, as far as it's concerned
luqui not at all in the absense of a sub foo (only methods)
yeah, and they're pretty different, until you start calling the multis 17:11
which should wash them together
nothingmuch so how does it know what is an invocant and what is an arg in a multi?
luqui is trying pretty hard to convince @Larry that invocants are a bad idea
Odin-LAP Isn't everything essentially a multi?
luqui Odin-LAP: it's getting there
nothingmuch i think invocants should be slurped from the args 17:12
it'd be much more dwimmy
luqui I think invocant's shouldn't exist, and we should have a smarter MMD behavior
nothingmuch but less symmetric with sub prototypes
luqui s/'//
nothingmuch how would it be smarter?
Odin-LAP luqui: Hm. But the concept of 'invocant' makes it a bit odd, you mean?
Yeah.
Hm.
Odin-LAP seconds nothingmuch's question.
luqui p6l "Argument Patterns" 17:13
that was my first brainstorm
nothingmuch you mean more like haskell's?
luqui nothingmuch: that was my inspiration
nothingmuch (btw, don't subtypes let us do that in an ugly way?)
luqui but a dynamic language needs something a little different from haskell
nothingmuch waits for mutt to open
luqui is working on a module with which he can experiment with these things 17:14
and really should be working on it right now
luqui declares that he'll be in-and-out
nothingmuch luqui: how would it look?
Reading /home/nothingmuch/.maildir/... 14580
it's growing too fast.... =(
luqui yikes
it would look pretty much like it looks now 17:15
(because my proposals never really change much on the surface, they just mess around with the guts) 17:16
stevan anyone inspired to hack in support for :g? 17:21
in s/// regexps that is
luqui are they still using pcre? 17:22
stevan yes
luqui (still referring to a very short period of time)
ahh, then no
stevan autrijus: just put in s/// for me
luqui a little jumpy on the tab key are we?
:-)
stevan :) 17:23
too much coffee
nothingmuch stevan: consider updating colloquy for a less convenient completion interface, if that's what you use ;-)
stevan I am using X-Chat-Aqua actually
:P 17:24
luqui likes xchat
stevan its the only one which worked well for me really
so I like it too
ok, since no one wants to work on s:g/// support 17:25
how about a nice hack to make this:
nothingmuch luqui: you're on OSX? or are you referring to a different xchat?
stevan $path ~~ s:g:perl5{/+}{/};
work without it
luqui no, I'm on linux.
I think x-chat-aqua is probably a port of xchat to aqua
stevan: it's possible, but it's not pretty 17:26
stevan luqui: its for the File::Spec hack/port, so pretty is not nessecary 17:27
if I wanted pretty I would not use File::Spec :)
luqui you could always do: while $path ~~ s{/{2,}}{/} { }
perhaps without the curly overload
Khisanth xchat-aqua is xchat with the native mac thing for GUI widgets instead of GTK :) 17:28
luqui that's what I thought :-)
nothingmuch luqui: i've got to admit i don't see how that is much different than subtype matching on MMD 17:29
Odin-LAP And is it open source, unlike the Win32 version of same? :>
luqui it basically destroys invocants and makes subtype matching less verbose
destroying invocants is the biggest part
nothingmuch invocants destroyed for SMD too?
luqui SMD and MMD are the same thing 17:30
in perl 6
nothingmuch so $self goes back to being $_[0], sort of?
luqui class Foo { method bar() {...} } and multi sub bar(Foo $x) {...)
well, methods still have that nice syntactic sugar
Khisanth Odin-LAP: yes 17:31
luqui it's just that the colon goes away, because it makes the semantics all icky
nothingmuch that means basically 'implicity add an argument of type ::?CLASS?
i really didn't like the colon either
Odin-LAP Khisanth: Cool. That's good. :)
nothingmuch in fact, i'd like to be able to do matching on arbitrary params... is that possible?
Khisanth Odin-LAP: although it does lack certain features
nothingmuch not only constraining
luqui nothingmuch: explain arbitrary 17:32
nothingmuch darn! nobody ever answers my posts to p6l
luqui what was your post about?
nothingmuch class Human { method eat (Dog $regular_arg) { say "i don't eat dogs" } method eat (Food $regular_arg) { say "mmm" } } 17:33
luqui: about currying positionals
luqui to be honest, I didn't really understand it
nothingmuch well, the first part is simple
S06 says "This method takes a series of named arguments" 17:34
but i don't see why
luqui oh, that's what you were asking
nothingmuch and then the second part says how we do it in pugs
and what our way implies
luqui and perl 6 probably ought to have a happy medium in there somewhere
nothingmuch and asks whether our impl is broken, or OK?
so luqui: can i do simple subs that have not only prototype constraints, but also matching? 17:35
i'd like to be able to do that at the MMD level, to allow things to be added on the outside 17:36
instead of using given { where }
which means the entire def is one place
(unless it should be in one place, in which case, don't remove switch statements ;-)
luqui Ohh! smart matching inside parameter lists
nothingmuch sort of
luqui hmm... that might be an elegant way to define smart match :-)
nothingmuch MMD dispatch
but not only for arguments 17:37
nothingmuch assumed that's how smartmatch will be implemented ;-)
except for evaluating the RHS, that is
luqui what else would you do MMD on except for arguments?
(still trying to figure out exactly what you're asking)
nothingmuch well, in many cases i like doing special cases separately
your factorial (is prime) { $?SELF } example pretty much illustrates what I want 17:38
basically, allow this specific-to-generic order matching of MMDs on all params, not just invocants
and to tell you the truth, I expect MMD to allow that anyway
since in theory, everything is an object 17:39
luqui that's exactly what I'm proposing
nothingmuch if you like to call it that
luqui because I'm proposing to destroy the concept of "invocant"
nothingmuch so isn't everything an invocant of a sub?
right
so what i'm really saying is: oh crap, i thought it was like this anyway
luqui specific-to-generic order happens to be a pretty hard thing to define
and that's the only weak point of the proposal at this point
nothingmuch i know it's hard
=(
nothingmuch tried it a couple of times
order of definition is also nice 17:40
although less DWIMMY
luqui Obviously, $x matches A imples that $x matches B iff B is more generic than A
nothingmuch perhaps order of definition within specific-to-generic in a simpler way
like, where clauses first
then least derived types
in order of constraint definition
luqui but that test is hard, or impossible, for a computer to do
nothingmuch upwards
luqui nothingmuch: hmm... 17:41
nothingmuch that test is impossible to optimize
luqui that's an interesting idea
nothingmuch and i think bad for humans to work with
i don't know about junctive types
obviously & is more specific than | 17:42
but i'm not sure if & is less specific than just plain old unjunctioned
luqui A&B more specific than both A and B which are more specific than A|B
it's that type lattice thing
but when you're doing that loose order, you might have to clump them all together
nothingmuch basically what you get is a pretty DWIM "specificness" measure
which is not heuristical, but well defined 17:43
luqui I think the main thing that it needs to be is well defined
nothingmuch and i think that's pretty good
compared to order of definition
luqui so people can understand what's wrong quickly
and allow them an easy way to fix it
nothingmuch yes
that's one of the things that seems the most scary for me in p6
i get along well with special cases
but too much dwimmery at runtime or something can really get on my nerves
luqui one of my efforts in the p6 design team is to reduce runtime dwimmery 17:44
metaperl_ nothingmuch, then dont get into functiona programming. it is pure DWIM
:)
luqui because it's bitten me too many times
nothingmuch metaperl_: i don' think so... i think
luqui: that's good
the sigil dereference chain mess in p5 was the most annoying
luqui metaperl_: the problem is that it takes you two hours to say what you mean, even if it only takes three lines
PerlJam luqui: In perl or other languages?
luqui: Have you ever dealt with C++? 17:45
luqui mostly in perl
nothingmuch you just can't get it right without using @{ } et all (no off hand example)
luqui I know C++ really well, and it never bites me. It just bugs the hell out of me.
nothingmuch one of the things i really appreciate in p6 is that it's very consistent 17:46
p5 had some oddities
PerlJam luqui: I know C++ really well too. I know not to mess with it while it's eating or it *will* bite me ;)
nothingmuch: you can say that again!
nothingmuch but p6 finds nice way of wrapping everything up much better
like builtins are really MMD
and operators too
and you can make them up
luqui Larry's trying to put all the dwimmery into ~~
nothingmuch so that means that they are well defined 17:47
less guessing
luqui which I like
nothingmuch ~~ is very well defined, i think
luqui but there are a lot of different cases
nothingmuch but they are all intuitive
luqui which should be considered dwim
sure
nothingmuch i wrote most of t/operators/smartmatch.t
luqui we don't want to put anything in perl 6 that isn't
nothingmuch and i have a good opinion on it
luqui (like, er, junctions?)
nothingmuch i really like junctions 17:48
except that I think autothreading should not have auto
s/auto/easy
luqui me too, they're a little tough for people to wrap their heads around though
nothingmuch that's not what gets to me
it's the same thing that annoys me with overzealous laziness 17:49
you lose control
luqui yeah...
nothingmuch and since the language isn't pure in the FP sense, it really /reaallly/ matters
what if i know that by doing x i indirectly fudge the file that is opened
luqui well the idea behind junctions is that you usually know where they are
nothingmuch and which that i assigned to @array beforehand?
luqui (but damian still refuses to mark them in any way)
yeah, you have a point 17:50
metaperl_ stevan asked a good question about junctions... I dont know if he posted it to p6l or not
luqui because of the recent p6l discussion, larry is really reconsidering the "everything lazy" perspective
PerlJam luqui: I think junctions are one of those things where we'll get them in 6.0.0 and then by 6.1.0 we'll have found out if they were a good idea as implemented or not.
metaperl_ my $junc = $a | $b | $c; ++$b; # does this change the junction
PerlJam metaperl_: no
luqui no.
nothingmuch i'd like to be able to have a n is lazy trait on lvalues
metaperl_: in p5 it doesn't make sense
unless $b is a reference
i'd expect no 17:51
metaperl_ i see
nothingmuch but what about if $b is a reference and ++ DWIMs on references/
luqui and then it still doesn't change the junction, it changes something that something in the junction points to
nothingmuch right
how do you specify when a sub takes the junction as a junction
and when a sub takes a junction as it's, err, unwrapping? 17:52
PerlJam nothingmuch: sub foo (Junction $bar) { ... }
luqui sub foo (Junction $j) {...}
one of your special cases :-)
nothingmuch if we use Sub and Int and Str
why not Jun or Junc?
that's more consistent
Junc, imho
ends in a consonant
PerlJam The whole Any|Junction thing bothers me though ... It kind of makes Any not really any. 17:53
luqui yeah...
nothingmuch hah
luqui but you've got to remember what junctions are
they're things that, when you give them this:
if $x { say "foo" } if !$x { say "bar" }
will say both foo and bar
nothingmuch how do you specify a junction that has a type? 17:54
like a junction of Ints
luqui Junction of?
nothingmuch Junction&Int?
luqui then you're asking for something that is both a junction and an int
nothingmuch why not make 'Any|Junction' into 'Junction Any' or 'Any :junctive
luqui which I suppose... well... umm....
nothingmuch i think ti's more than a type
it's the state of the vlaue,
or it's err, lack thereof 17:55
luqui I think a junction is just a type, and perl is confused about what a type is
nothingmuch again with the 'err' and the 'uhm'
luqui you'll see that a lot of my proposals try to generify "type"
PerlJam nothingmuch: btw, I'm sure that the actual type names are probably Integer, String, Number etc. and Int, Str, Num are convient shorthands. I don't think Junction should have a convienent shorthand.
nothingmuch so how do i specify a junction of types?
like array shape?
luqui I've always wanted to do something like: role 2 { method is_prime() { 1 } }
PerlJam: no, they're actually Int, Num, and Str 17:56
nothingmuch so that even a value can be a type?
luqui yeah
or rather, a type can be a value
nothingmuch that makes more sense with junctions
and generalizes where {} a bit, methinks
luqui uhhuh 17:57
nothingmuch how does that fudge the runtime/compiletime mess?
PerlJam luqui: then I'll blame haskell for messing with my mind! ;-)
nothingmuch i think it would work if we had haskell like type inferrence
except that it's not strict
luqui yeah, but it wouldn't be perlish
nothingmuch in that once you make a type more generic
it stays that way
haskell inference tends to try to find the most specific case
and anything that is not really that case exactly with no fucking exceptions and i mean it, is a compile time error 17:58
luqui Larry said that type inference is a possibility as long as it doesn't yell at you
nothingmuch exactly
i'd really like to be able to strictify type inferrence selectively
luqui I have to say, haskell's type inference has caught a lot more errors than C's type declarations
nothingmuch it has
luqui hmm
nothingmuch i am starting to like it
luqui well type inference is a difficult thing to implement 17:59
nothingmuch and i really distrusted C's
if we figure it out, though
luqui especially with the complexity of Perl 6's object model
nothingmuch MMD could be smarter
smartmatch could be smarter
luqui yeah, and contexts in calls could be smarter
nothingmuch because the compiler will know much much more about the containers
luqui which would be awesome
nothingmuch and their values
luqui one problem with type inference is that it is counter-opaque
nothingmuch how is context insensitivity at the proxy level dealt with, btw/
opacity could just be a border 18:00
type inferrence stops here
luqui yeah...
nothingmuch: what do you mean by comments[-3]
nothingmuch it's class X's problem
i don't recall if i sent a message about context insensitivity to p6l
but it's one of the special cases i most hate dealing with in p5
wantarray should never be seen, if it's not at the leaf or the root of a call chain 18:01
what do you mean by "comments[-3]"?
;-)
luqui poor naming choice. nothingmuch[-3]
nothingmuch english is so much easier to type than say
luqui which is now nothingmuch[-9]
nothingmuch proxy level?
luqui yeah
nothingmuch sub foo { }
is a wrapper for sub bar { } 18:02
which takes bar's result
and also sends it into gorch {}
how does it do that, if bar is context sensitive
luqui oh yeah
nothingmuch and gorch is polymorphic
luqui Larry's thought of that too :-)
nothingmuch without actually caring about the fact that both are
and what it's own context is
luqui he just hasn't come to a solution
It's almost globbish: *foo = bar(); gorch(*foo) 18:03
nothingmuch ah, i did
'retiring wantarray''
luqui oh, excellent
nothingmuch again, no replies =)
like my taint idea
PerlJam We need to get larry on here so that we can brainstorm in real-time with him.
nothingmuch and, ...
PerlJam (mess up his mind faster that way ;)
nothingmuch PerlJam: i asked him
he said he doesn't want to do that, because he wants stuff logged 18:04
and slowly
and less ADD insensitive
luqui you mean sensitive?
nothingmuch i mean less disturbing
luqui anyway, your wantarray problem is a tough one
nothingmuch so that he can answer in his own time
and not have to click on the irc window to see if new stuff has happenned every minute 18:05
luqui what it seems we need to do is to back-infer the type that bar() is supposed to return
PerlJam nothingmuch: It's saner that way for him. I'd do the same were I he.
nothingmuch right, type inferrence really would help DWIMery here
luqui The design calls are silent 40% or more of the time 18:06
nothingmuch especially if it's weak
(that is, type inferrence is not pedantic, just something you can leverege for sanity)
luqui It goes "Larry, problem", Larry: "............... well.................. we could (very good idea that he ends up rejecting)"
nothingmuch and it's good DWIMery
luqui and then two days later he posts a really really good idea 18:07
nothingmuch because it's very deterministic and defined
luqui yeah
nothingmuch retiring wantarray was about a week ago
luqui but I don't think it's a good idea to start defining language semantics based on a feature that we're not sure we'll implement
PerlJam luqui: maybe instead of the conference call, you guys should IRC once a week
nothingmuch well, then you design for both cases
luqui I think that would be dangerous
nothingmuch isn't that how you find out what looks better in the end? 18:08
you could autothread it ;-)
oh wait, we don't know how to do that safely
luqui nothingmuch: and the problem with that is that it starts restricting how we can define our type system
PerlJam Everyone of you with the exception of Larry already regularly IRCs :)
nothingmuch and then synopses will be contradicting
luqui damian?
nothingmuch allison?
rgs jhi? 18:09
luqui who's jhi?
PerlJam okay, and maybe damian (I don't think I've ever seen him on IRC)
nothingmuch isn't that jarkko?
luqui ahh
PerlJam He isn't part of the cabal is he?
nothingmuch is he even involved in p6?
rgs just throwing pumpkings in the arena 18:10
luqui I don't think I've ever spoken to him
weren't you a pumpking rgs?
rgs actually, I am one
for 5.10
luqui oh. neat.
nothingmuch i think i might have seen some occurances in parrot
s/weren/aren/
PerlJam DCCs some sympathy to rgs ;)
nothingmuch luqui: is Inline:: designed in p6? 18:11
rgs sympathy, good :)
tuits, better
nothingmuch i'd really like to mix and match given the fact that parrot "will make it easy"
i just have no real clue how it will look
luqui nothingmuch: I don't think we've really thought about it
Ingy did an awful good job in perl 5
we might just leave it up to him 18:12
nothingmuch i think he's already doing it =)
luqui good
nothingmuch oh, last thing
in p5 there is no lightweight threads
it's either two processes which can share some memory if you think it's worth it
or completely synchroneous, ala Coro, Event, POE 18:13
will we have proper threads
luqui lwall: "I think both the 5.005 model and the ithreads model are wrong to some extent"
nothingmuch that can be created and destroyed /fast/?
luqui the fast part is up to parrot
we hope
nothingmuch 5.005 is more "right" for me
it can't be fast just like that, obviously
jabbot pugs - 1064 - just uploading the File::Spec progress -
nothingmuch if we copy everything then it'll be slow, even with copy on write 18:14
because you have to make everything readonly first
luqui I think the threading model will be up to the parrot folks in general though
because they're having to tackle it, and we're not thinking about it
so whatever we do will probably be whatever parrot does
nothingmuch =/
i think that's asking for trouble, in a way
luqui so get on parrot's ass if you want a particular model
nothingmuch not giving requirements to a design team
is not likely to come up synchroneous at the end 18:15
luqui I could bring it up today on the design call
nothingmuch would like two things:
throwaway threads
that you create for cheap
when you just want to do somehing and not be interrupted
luqui every time I chat here on wednesdays I end up having to get a piece of paper for the call
nothingmuch and two mix two things: 18:16
luqui I think that's good
nothingmuch long running heavy computation
and responsive interfacing
into one thing
without making the the heavy computation complex, so that it can do funny things
this is a big design ease
i just ate crap with it in p5
because i thought i was building a batch system
PerlJam luqui: tell pmichaud "hi" for me if he's on the call. He's been conspicuously absent from the places where I normally run into him.
nothingmuch and it turns out it should have a nice responsive web GUI too
so now i'm sort of screwed 18:17
PerlJam I'm hoping that's a good thing and that he's focusing on pge and/or pugs
nothingmuch and i will probably resort to using signal handlers
what about serializability? is that also for parrot?
i'd like to be able to store closures in a DB, sometimes
it makes things easier
luqui yeah, but they've declared their answer
"we'll do serialization, and we'll serialize continuations too" 18:18
which implies closures
nothingmuch are they serious about it?
luqui yep
nothingmuch i really don't see how that could be generalized well
nothingmuch hopes that they get it right
PerlJam nothingmuch: #parrot exists you know :)
nothingmuch 0 members 18:19
"You were demoted from operator by ChanServ."
oh well
Khisanth not this network :)
luqui yeah, and luqui doesn't follow parrot *that* closely
nothingmuch on perl.org, p'raps?
PerlJam nothingmuch: magnet #parrot
nothingmuch: aye
All that's happened lately on #parrot though is that chip has been having fun nick switching. 18:20
perhaps you'll stir them up a little.
nothingmuch tried 18:21
bah, i got carried away 18:22
i promised myself i'd fix currying today
i think i'm going to try to be sort of busy
luqui & { sleep 300; fg }
jabbot pugs - 1065 - adding some more File::Spec docs 18:23
nothingmuch well, /I/ answered another one of my p6l posts ;-) 18:25
sorje And you're complaining nobody's answering it.. ;-)
luqui back 18:36
vladtz hello 18:40
yesterday I ran into problems with ghc5.4 for x86_64 18:41
markstos vladtz: That sounds like a fairly old version of ghc. Is a newer version available for your platform?
vladtz today I tried using the i386 version of ghc6.4 18:42
s/5.4/6.4/ sorry
now it fails with asm errors, stillno luck (Fedore Core 3 gch64 rpm)
pasteling "vladtz" at 80.127.84.50 pasted "ghc 6.4 problems" (7 lines, 525B) at sial.org/pbot/8545 18:43
vladtz On the fedora haskell list I was told ghc for 64-bits lacks GHCi support needed for template syntac 18:44
kungfuftr 125 subtests failing 18:58
nothingmuch luqui: more ideas 19:06
will closures be introspectable, in a way?
i mean, could i look inside one, and see what it does, what it's bound to?
re: type inferrence: 19:08
this would do wonders for unicode<->other codes
and for string representation and parsing of numers
i'd also like to do things like:
FH is file
or
luqui nothingmuch: about closures, umm... sortof
nothingmuch FH is viewed
luqui you probably can't look inside a closure unless we've kept its syntax tree around 19:09
nothingmuch so that if i print "$data" into either, it gets displayed for the user
i meant, could i do diotalevi type stuff to it
luqui and if we have, then you can look all you like
diotalevi?
nothingmuch perlmonks
he does funny stuff in p5 guts
except you won't have to know p5 guts to do it
luqui splain 19:10
luqui is no monk
theorbtwo You should fix that.
B::Deobfuscate.
nothingmuch i think he did it to demonstrate that inside out objects are also not a shotgun-in-the-livingroom type thing
i can't remember when or in what context he said that
i'll try to find the post
B::Deobfuscate is a simpler example of diotalevisms, i think =)
nothingmuch really respects him 19:11
diotalevi++
the only one who didn't say i plagiarized MAPL on my first post
because he actually read it to see the details
theorbtwo wonders WTF MAPL is.
nothingmuch mastering algorithms with perl 19:12
theorbtwo Ah.
nothingmuch i took the approx matcher
and redid it with closures
except i didn't quite title it right
and then everyone said i was an asshole for plagiarizing 19:13
except i wasn't showing off that I grok manber-wu
i was showing off that i grok closures
www.perlmonks.org/?node_id=315186 19:16
i know it's possible in pugs
that's what i've been doing for a while ;-)
jabbot pugs - 1066 - Begin of an (OO) Email::Simple port. 19:33
nothingmuch 's mom is now on a cholesterol (chosthelerol, tee hee) 19:55
diet
nothingmuch is helping her with the red wine =)
yay! larry answered! 19:56
stevan iblechb++ # for the Email::Simple 19:58
naddamucho
wanna help me make :g work?
kungfuftr Email::Simple? 20:00
*blink*
stevan svn.perl.org/perl6/pugs/trunk/modul.../Simple.pm
nothingmuch stevan: naddamucho will not cause growl to pop a notification ;-) 20:01
stevan nothingmuch: sorry
you need a bi-lingual IRC client :P
nothingmuch ok, well, i fixed it
try now
stevan naddamucho: hey
nothingmuch hola steffano!
stevan guten tag :P 20:02
so before you get too silly on read wine, wanna help me with some Haskell?
nothingmuch sure
wine works slowly on me though
last week i was in a wedding
took 5 cups to get me willing to dance 20:03
get me to be? english doesn't make sense for me
nothingmuch tries to think on that one
theorbtwo ...make me willing...
nothingmuch good point
theorbtwo ...get me to be willing...
stevan 5 cups to get you on the dance floor
nothingmuch that makes sense too 20:04
nothingmuch should talk it sometime, not just type it
i don't "hear" it otherwise
stevan nothingmuch is *not* a cheap date
nothingmuch oh i'm cheap ;-)
theorbtwo ...should speak it...
nothingmuch i'd do anything for free food, attention, more alcohol etc
theorbtwo recommends watching DVDs in english. 20:05
nothingmuch theorbtwo: actually that was intentional
theorbtwo Oh, whoops.
nothingmuch =)
even if it doesn't make sense, the point was to draw attention to the fact that it's 'talking', not just using it
i think
that's how i heard it in my head 20:06
which again, doesn't make sense
=(
and hearing doesn't help much either
i do that a lot
but given a one week visit to an english speaking country, and I become much more coherent
i think that's fair, because most of my usable english was not learned by conversation 20:07
so anyway, staffenhof, what is your haskell problem?
and please don't count on me being able to help ;-) 20:08
stevan? 20:11
jabbot nothingmuch: stevan is gone.
kungfuftr heh, casey's liking the fact Email::Simple port is under way... looks like he's intrested in pugs 20:12
=0)
nothingmuch maybe we can get simon cozens to become an atheist this way ;-) 20:13
stevan is gugod--
steva?
stevan?
jabbot nothingmuch: stevan is gugod--
nothingmuch damn right, jabbot
Corion Two questions: What is the magic svn incantation to get the latest Pugs? And has somebody started on porting LWP ? 20:15
nothingmuch hola Corion! 20:16
svn co svn.openfoundry.org/pugs
and then you have ./pugs
Corion Hi nothingmuch ! (and the rest of the crowd too :) )
crysflame hi, corion
Corion nothingmuch: Thanks!
stevan sorry nothingmuch
client is on the phone 20:17
nothingmuch nono! your full attention is required at this time!
Corion (does Pugs have sockets at all? )
nothingmuch Corion: err, i doubt it
Corion Yay - checkout was fairly quick :)
nothingmuch you could write a todo_test
and then when it passes, err, find out ;-)
crysflame heh
nothingmuch with LWP todo_testing a phone home address, that should be very easy =D
Corion nothingmuch: Ah - well, I'll look how far I get with the native call interface and maybe hack up some sockets thing that only works on Win32 :) 20:18
nothingmuch or you could stay involved with pugs
Corion: it's probably easier than you think
Corion nothingmuch: Heh - having Pugs tell me when it's ready would also be fun, true :)
nothingmuch remember that haskell is a high level address
ayrnieu a HLA, if you will.
nothingmuch s/address/language/
Corion nothingmuch: Well, I wanted to do a bit with Pugs and thought that starting a port of LWP would be a good thing :)
nothingmuch dad is confusing me, sorry 20:19
Corion Yeah - maybe Haskell has enough sockets to get me started...
nothingmuch i would start with something a wee bit simpler if i were you ;-)
what does sloccount LWP say?
ayrnieu Corion - oh, GHC certainly has socket support. Even somewhat OK support.
Corion nothingmuch: Ah, I wrote something like LWP for Ruby (and then came back to Perl), so writing it for Pugs shouldn't be too hard :) 20:20
nothingmuch well, ok =)
ayrnieu Network.hs had a tiny maldesign, last I looked, but *that's OK*.
kungfuftr File::Path, Scalar::Util (some of it at least) and um... Set::Object!
stevan Corion: be forewarned that modules, packages and most importantly objects do *not* work in Pugs now
nothingmuch Corion: do you grok haskell yet?
Set::Object++
Corion stevan: Ugh - but something as simple as LWP::Simple doesn't need much of objects :) 20:21
kungfuftr Set operations in general are lovely
Corion nothingmuch: No - I can read it, but I don't understand types... I need to read a book on that I fear.
nothingmuch Corion: well, do remember that pugs is 51 days old
perlbot YAHT
perlbot Yet Another Haskell Tutorial -- www.isi.edu/~hdaume/htut/
Corion (but it should be enough to learn from existing stuff and modify existing stuff)
stevan Corion: sub returns values are sketchy right now too :)
nothingmuch that helped most tof us
Corion I already read YAHT (I think), but I didn't understand types. 20:22
nothingmuch and so are sub param bindings
stevan thanks to nothingmuch :)
nothingmuch is working on that ;-)
larry's post is confusing me
ooh, guests are here
bbiab
stevan Corion: dont let us discourage you though
you can always port, and wait for the features 20:23
thats what we did with most of the stuff in there now
Corion Hmmm. Param bindings aren't that necessary. But I guess I'll dig in and see how far I get and then bitch about it here :))
stevan Corion: if you wanna see a port/hack which does work (sort of) look in ext/FileSpec/*
but beware, it gets ugly in there 20:24
Corion stevan: Yeah - your port gave me the idea of thinking what module I wanted to port, and LWP was the one I wanted (to make use of continuations)
stevan Corion: glad to inspire :)
Corion BTW - I got to chapter 4 of YAHT but the explanation of Types told me nothing (or I don't get what types are about) 20:25
stevan Corion: I havent read YAHT, and can't write Haskell myself, I'm just here for the Perl6 :)
ayrnieu Corian - in order to learn Haskell, I suspect that you will need to be able to leave many terms (such as 'monad') undefined for a while. 20:26
Corion stevan: Writing Haskell isn't that important to me (at least now), I also mostly want to do Perl6 as some quick exercise :)
stevan Corion: wanna help with the OO test suite?
Corion ayrnieu: Yeah, I could do that, but I prefer to learn stuff properly :-)
stevan: I first have to get Pugs installed/compiled and get my feet wet a bit with it, then I can maybe churn out some tests for OO stuff, yes :) 20:27
stevan excellent
Corion (and I'd want some OO stuff for LWP sooner or later :) )
Whooops - Pugs fails some tests in t/examples :)
stevan Corion: we have plenty of test failures in the current rev
115-125 I think 20:28
ayrnieu Corian - ... even if you want to learn Haskell properly, you may need to do as I suggested.
Corion Ah - so it's nothing to worry about :)
ayrnieu will be offline for a few days.
stevan Corion: they are on the TODO list
Corion ayrnieu: Ah - well, I'll skip on that for the moment I guess - I can read Haskell well enough, and I got far with being able to read C too :)
Ah - yes - 125 failures (25/118 scripts) 20:30
jabbot pugs - 1067 - Both $mail.header("From") and $mail.head 20:33
nothingmuch weeell 20:39
hyper defined as a circumfix:<Ā« Ā»> 20:47
which returns an anonymous infix operator
slurpy on both sides
?
theorbtwo wouldn't that be circumfix:{'>><<'} ? 20:49
Er, circumfix:<Ā»Ā«>
PerlJam theorbtwo: Those guillemets don't know which way they're pointing
stevan nothingmuch: is a multi-line comment in Haskell {- -}? 20:51
theorbtwo Yes.
nothingmuch i have no clue
err, yes, theorbtwo, but what does it matter
theorbtwo {# ... #} is a compiler hint.
Well, I'd call $a>>$b<<$c a circumfix operator macro with a strange middle parameter... possibly. 20:52
Corion How do I tell Pugs to search the lib/ directory ? pugs -Ilib doesn't work, and C<use lib 'lib'> doesn't work either ...
stevan Corion: you set the PERL6LIB env variable
theorbtwo Oh, hi, Corion! 20:53
I thought -Ilib was working now... but yea, PERL6LIB.
Corion Hi theorbtwo!
theorbtwo: At least as of five minutes ago, -Ilib didn't work :) 20:54
nothingmuch gugod++ 20:56
Corion Gah. With infallible instinct I beelined for ext/SHA1/SHA1.pm, which doesn't work yet. But using that would make stealing some http/socket code from Haskel soo much easier :) 20:59
nothingmuch that's autrijus's latest hobby 21:00
Corion nothingmuch: Yeah - I read that in his latest journal :)
nothingmuch feels redundant, and also tends to repeat information that is already known
use.perl.org/~autrijus/journal
stevan I don't think I like PCRE 21:02
or Haskell either right now
nothingmuch stevan?
jabbot nothingmuch: stevan is gugod--
Khisanth PNCRE! :)
PerlJam blasphemer!
nothingmuch hah!
stevan I just spent all this time,.. only to realize I was changing code which was commented out :P
theorbtwo jabbot, forget stevan
jabbot theorbtwo: ok 21:03
Khisanth hmm NPCRE
nothingmuch theorbtwo: this is an incentive for gugod to change it =)
theorbtwo jabbot, stevan is Stevan Little (STEVAN)
jabbot theorbtwo: ōæ½xA9Ņ„Hōæ½xA1H
stevan then once I realized it was commented out,.. it totally shattered my understanding of all this
theorbtwo Blink... WTF?
nothingmuch stevan: use syntax coloring
stevan nothingmuch: I think I will just stay away from Haskell for now :) 21:04
PerlJam stevan: why? Because you thought your changes were having the effects you wanted?
stevan PerlJam: I was in way over my head
I was trying to add the :g support to Reg-exp
and I am barely literate in C, and no at all in Haskell
and :g takes understanding both 21:05
PerlJam stevan++ refusing to be limited by his lack of understanding :-)
nothingmuch PerlJam++ 21:06
stevan PerlJam: thanks :P
coding_by_accident--
PerlJam stevan: sometimes it's okay to jump into the deep end even if you don't know how to swim--you'll learn real fast that way (occasionally)
nothingmuch can vouch for that 21:07
at least perlbot karma nothingmuch can
luckily in puters you can't really drown either =)
Khisanth PerlJam: or you drown! 21:08
stevan svn revert is my friend :)
PerlJam Khisanth: metaphorical drowning is the best kind.
Khisanth only if you enjoy drowning 21:09
stevan svn++
nothingmuch it's like reading a book about heroin addicts
if it's really well written, you can nearly experience it
but then the book ends
and woah! you're not a junkie!
gugod++
stevan?
stevan nothingmuch? 21:10
PerlJam Khisanth: no, because once you've metaphorically drowned, you get that "phew! I'm glad *that's* over" kind of feeling and hopefully you've learned something
theorbtwo nothingmuch++
nothingmuch gugod++
PerlJam nothingmuch: Have you ever read the book _Bore Hole_ ?
gugod *phew*
nothingmuch gugod fixed jabbot, so it doesn't thing 'stevan is gone' or something
and when people ask 'what?' it won't repeat the last 'what is ...' question
thanks gugod!
PerlJam what? 21:11
:)
nothingmuch delays bindSomeParams till larry replies 21:20
does someone have a todo for me?
luqui nothingmuch: about threading 21:21
groups-beta.google.com/group/perl.p...c96b258981
musings. responses about it would be nice
(bring it up on p6l if you like)
stevan nothingmuch: please do s:g:perl5/// :)
nothingmuch stevan: i think that is beyond me, but i'll try 21:22
theorbtwo nothingmuch, do -Ifoo
stevan if you can just grok how regexp are made that might help
nothingmuch -I like in PERL6LIB?
theorbtwo Yeah.
luqui p6 design call going on now
any Great Questions, shout 21:23
nothingmuch gave a bunch of "details details" questions about param binding on p6l
but aside from that i'm happy
except for what we discussed earlier
idea:
is lazy semantics:
it's an lvalue trait
it causes the assignment to be made into a closure 21:24
which executes as late as possible
instead of now
it's clear, it's controlled
and it's, useful
but it's not the default
and it's not too magical
luqui hmm... 21:27
i think that deserves a proposal to p6l
and I promise that I'll think about it and reply :-)
nothingmuch ok, i'll do that 21:28
but first i'll try to help stevan with :g
stevan yeah!!!!!!!!!
PerlJam lvalue trait?
stevan nothingmuch + Inf
nothingmuch PerlJam: the receiver gets to decide 21:29
PerlJam It sounds more like a trait of the operator than the lvalue
nothingmuch wait, no, that doesn't make sense
mostly i'd like it in the sender
but sometimes in the receiver
luqui but it could be = that does the magic by checking the trait
nothingmuch you're right, more of a trait of the operator
and also, lazily assigned values passed on simply retain laziness 21:30
(see also fruitful IRC backlog with theorbtwo and someone else about how this could be fun)
(this could be done with taint generalization!!!! reply to that message!)
theorbtwo Sounds like a trait of the values: if either side is but lazy then the thing being assined to ends up but lazy. 21:31
PerlJam nothingmuch: when would you want it in the receiver?
theorbtwo (Which makes lazyness quite infectious.)
nothingmuch PerlJam: i don't know
PerlJam theorbtwo: yeah, it could be a trait of the rvalue.
nothingmuch it just made sense for a while
PerlJam (so far, only rvalue traits make sense anyway :-) 21:32
nothingmuch it could be a trait of the container
actually the context
which belongs to the container and the operator together
theorbtwo I'm thinking on the rvalue or the operator makes sense. 21:33
Though I'm not sure how traits on an infix operator would look.
nothingmuch i see this relating to:
my $var = BEGIN { make_a_value } 21:34
theorbtwo Hm, I wonder if a lazy prefix operator is enough. 21:35
my $var = lazy (42!);
(Er, except there aren't numeric postfix operators, but you get the point.)
nothingmuch type inferrence could help make things like that optimized lazy 21:36
if luqui gets his way, we could have auto laziness in subsets where the compiler recognizes ops are pupre
and then you wouldn't have to do that
what it /would/ be useful for is to say: 21:37
even though this op reads a file, and that should in general not be lazy
i /do/ want it to be lazy
because for this case i don't care
PerlJam Hmm.
nothingmuch my @array will vivify { }
that's basically what i want
but i don't want to tie 21:38
and i don't want to if $sub ~~ Sub
and so on, and so forth
and i want to be able to send this stuff safely into the unknown
that is, someone elses well behaved p6 code
PerlJam Suddenly it seems that control of the lazy is ueber important. Maybe it's just me though. 21:39
nothingmuch lazy without control will not work in a non pure language, period
unless it's guaranteed to be safe 21:40
like haskell arranges for it to be
it won't be safe
and someone will cry
or arrange for nested laziness myself
i don't like the fact that gather will pause execution of a closure until it needs to take
PerlJam perhaps we need a use-like operator called "be" ... then we can lexically scope laziness with "be lazy" :-)
nothingmuch if it were lazy i would expect it to be all or nothing
but going that far, for coolness, or whatever, is just too much 21:41
=)
use sloth;
but then again
since 'use integer' was made into a type system thingy 21:42
for better fine grained control
i think we should aim for this in new features too
Corion How do I find out in Haskell if a string starts with a certain substring?
nothingmuch also, laziness is definately /not/ good backwards compatibility behavior 21:43
because many people optimize with strictness in mind
PerlJam perl 5's "use integer" has always annoyed me because it doesn't do what I want.
nothingmuch www.cs.uu.nl/~afie/haskell/tourofprelude.html
theorbtwo You match it against ('x':rest), and rest will be the rest. 21:44
nothingmuch www.haskell.org/ghc/docs/latest/htm....List.html
Corion theorbtwo: That means I'll have to manually to a match for every element in the string/list ? Ugh.
theorbtwo Note that that doesn't follow for longer strings -- it's ('-':'I':rest) for the rest.
Corion theorbtwo: Ah - that's nicer :) 21:45
theorbtwo I don't know if you can match "-I" ++ rest -- probably not, since ++ is a regular function but : is a constructor.
Corion theorbtwo: How did you know that I want to match "-I" ? :-)) 21:46
theorbtwo is psychic.
PerlJam you could always take 2 string
(and drop 2 string for when you need the rest) 21:47
nothingmuch stevan: i think this is not going to be too easy 21:48
stevan nothingmuch: yup :)
autrijus said it was,.. but I dont believe him
autrijus++
nothingmuch++ # for just looking at it 21:49
nothingmuch i haven't given up yet =)
stevan nothingmuch++ # for perseverence
perlbot highest karma
nothingmuch bah
perlbot The top 5 karma entries: nothingmuch: 40, autrijus: 40, C: 27, ~brad2901: 26, stevan: 24
nothingmuch nothingmuch-- 21:50
stevan C--
PerlJam autrijus++ because he can never have enough
stevan who is brad2901?
nothingmuch tr/,/d
he came in, and implemented some important feature (given, was it?) in a blitz
and, i think that was it 21:51
i think rregex just doesn't really provide the interface
it only knows /i and /s vs normal 21:52
stevan but I think /g would work just like /i and /s 21:53
nothingmuch yeah
stevan it seemed to me that PCRE just too a combined flag or "options"
nothingmuch but this would mean fixes at many levels
PCRE seems to use an int
stevan yeah, if you look at compile in src/RRegex/PCRE.hs 21:54
-> Int -- ^ Flags (summed together)
nothingmuch uhuh 21:55
that's the first place i looked
stevan I had original made my changes at line 220 in src/RRegex/Syntax.hs
but then I realized it was commented out
nothingmuch perhaps with [RegexOpts] where data RegexOps = I | G | S ...
now i want to see how i can make mkRegexWithOpts a bit nicer
and then they are simply applied to the flag in order 21:56
stevan yeah I messed with mkRegexWithOpts as well
that was the only thing which worked, although it spewed warnings
the one part I was unsure of was that there is no pcreGreedy 21:57
just an pcreUngreedy
nothingmuch greedy = :g?
stevan yeah
nothingmuch why not "global"? 21:58
stevan oh
uhm
I am not sure what the long form is
but it makes it match all the instances
nothingmuch oh well 21:59
stevan so I think of it as greed
y
Khisanth stevan: for :g? 22:01
PerlJam historically that's "global". "greedy" is something else entirely :)
stevan doesn't s///g match greedily?
or is my nomenclature off?
nothingmuch g is the 9th bit 22:02
Khisanth erm no
that g is global :)
PerlJam stevan: if you mean "globally", then yes. :)
Khisanth greedy is on by default
theorbtwo Greedy is if * matches as much as possible or as little as possible.
nothingmuch Ungreedy makes .* behave like .*?
i hope
theorbtwo (In perl, plain * is greedy; *? is ungreedy.)
Khisanth nothingmuch: with pcre?
stevan ok, ignore me then,.. i mean global :)
nothingmuch :g really just reiterates
i don't know, i hope
=)
and i think reiterating is the wrapper's job
stevan pcreUngreedy, -- matches are not greedy by default 22:03
Khisanth well not quite, according to pcre manpage
nothingmuch hmmm
Khisanth ungreedy makes * ungreedy but *? greedy
stevan according to src/RRegex/PCRE.hs
PerlJam Khisanth: that's so evil.
theorbtwo Uff. That's confusing.
stevan *glug* *glug* <<< that is me drowning :P
Khisanth that particular option also makes it incompatible with Perl RE :)
nothingmuch i think we should all read pcre docs first 22:04
Khisanth should this really be including features that make it incompatible with Perl's RE for better or worse?
Corion theorbtwo: How did you know that I want to match "-I" ? :-))
PerlJam Khisanth: why not? pcre will never be compatible with p6rules.
Corion Ooops - sorry
theorbtwo Hit talk, not reload. ;) 22:05
PerlJam Khisanth: as long as it's clear that you're using PCRE
Khisanth PerlJam: neither is Perl's RE...
nothingmuch perlbot nopaste
perlbot Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel>
pasteling "nothingmuch" at 212.143.91.217 pasted "pcre docs: ungreedy" (6 lines, 294B) at sial.org/pbot/8549 22:06
Khisanth PerlJam: I was hoping that if I used perl5 REs in perl6, they would actually work exactly the same :/
you know, least suprise and all ...
stevan Khisanth: I wouldnt worry I think PCRE is temporary
nothingmuch By calling pcre_exec() multiple times with appropriate argu- 22:08
ments, you can mimic Perl's /g option, and it is in this kind of imple-
mentation where \G can be useful.
you need to send it startoffset
www.pcre.org/pcre.txt
executeExtract 22:11
we seem to want that for :g
stevan execute calls c_pcre_exec too 22:12
nothingmuch *yawn* 22:13
stevan wow,.. its really snowing here now 22:15
nothingmuch: line 76 in Syntax.hs maybe?
nothingmuch 72? 22:16
it just makes a lazilist with matchOnce ;-)
stevan *sigh* why does autrijus have to sleep :P 22:18
pasteling "Corion" at 217.86.59.98 pasted "Types question - why doesn't this work when I add the types?" (15 lines, 393B) at sial.org/pbot/8550
nothingmuch there's actually an infix =~ 22:19
Corion I got it working by punting and filtering out the empty string, but I think I should use "Maybe String" and "Nothing" instead
nothingmuch cool =)
Corion (and when I transfer my code into Run.hs, it blows up because of incompatible types still) 22:20
nothingmuch Corion: Maybe stuff means you must put monad fun into it all 22:22
Corion nothingmuch: I guess it's just too late in the evening for my brain %-)
nothingmuch Corion: perhaps another solution: 22:29
pasteling "nothingmuch" at 212.143.91.217 pasted "-Ifoo" (14 lines, 233B) at sial.org/pbot/8551
nothingmuch maybe you like that better
or even nicer: 22:30
pasteling "nothingmuch" at 212.143.91.217 pasted "with drop" (12 lines, 204B) at sial.org/pbot/8552
Corion nothingmuch: Yeah - that's OK too, but I would really want to introduce the types ( a -> Maybe a )... But maybe I just don't understand what the types are for :) 22:31
nothingmuch what types?
nothingmuch didn't do any types
Corion nothingmuch: Yes, but I want to do types. 22:33
nothingmuch what for?
line 48 of Run.hs: (libs, args) <- getLibs environ args
Corion nothingmuch: Or rather, when integrating the stuff with Pugs, I get type errors, so something in my understanding must be wrong 22:34
nothingmuch: Line 48 looks different in my version, but I added something to that effect, yes.
(or did I miss somebody adding -I support already? :) ) 22:35
nothingmuch i don't think
that's what i suggested changing 22:36
Corion Ah. It was just plain stupidity on my part. Cargo-culting only gets you so far :) 22:37
nothingmuch i have a diff you might be interested in 22:38
Corion (at least Pugs is now compiling again. I should now write a test against -I ...)
nothingmuch want to share?
ninereasons is a "topic" going to be read-only by default? 22:39
pasteling "Corion" at 217.86.59.98 pasted "-I support for Pugs (preliminary, only against Run.hs, needs equivalent change in Main.hs)" (23 lines, 785B) at sial.org/pbot/8554
Corion nothingmuch: Needs the reverse of your line 48 applied:
libs <- getLibs (args) (environ)
... and the same in Main.hs
nothingmuch ok, that's good 22:40
except, you need to also return the new arg list
stevan ninereasons: why do you ask?
nothingmuch so that -Ifoo doesn't end up in @*ARGS
ninereasons stevan, I wondered if we would be able to do something like map { $_++ } @a
Corion nothingmuch: Ooops - yeah, that's true ... But not tonight anymore :)
nothingmuch want me to take it on from there? 22:41
it's a simple fix
Corion BTW, Failed 25/118 test scripts, 78.81% okay. 125/2867 subtests failed, 95.64% okay. <- nothing new broke, right?
nothingmuch: Yes, please do :)
nothingmuch i would go with isLibArg
and map drop 2
and partition on that
ok
stevan ninereasons: I dont think that would work in Pugs right now, but I imagine it will in perl6
Corion nothingmuch: Ah, well - I'm not wed to my implementation :)
nothingmuch just because it's easier to shove it to partition ;-)
Corion nothingmuch: I like the pattern-matching declaration style, but the other way seems just as good. I don't know any Good Style for Haskell anyway :) 22:42
(and now it's bedtime for me. I expect results tomorrow, nothingmuch :))
nothingmuch ciao
Corion Good night all :) 22:43
stevan good night Corion
ninereasons stevan, am I correct to have supposed that my question concerns the properties of a "topic" ( that: "Topic eq $_")? 22:44
stevan yes (but I am no expert on this)
there are many variables in Pugs which should be mutable, but are immutable instead 22:45
but that is a TODO item
ninereasons ok - that gets to the real issue. Thanks. 22:46
I'm still trying to sort out the TODOs and the real constraints
nothingmuch ninereasons: please write tests for these stuff 22:48
things 22:49
they make it impossible not to define it later
if you need commit access autrijus, obra, stevan or me can all give you that
ninereasons I'm not a programmer, though, nothingmuch.
I am a luser of perl
nothingmuch tests are in perl =) 22:50
(perl6, that is) 22:51
ninereasons I would like to help; but I don't want to screw things up with bad commits
stevan ninereasons: thats what svn is for :) 22:52
nothingmuch don't worry about that
revision control lets you or anyone else cleanup
and you can always test before you commit
stevan we can always revert back if there is something wrong
ninereasons then I would like to help 22:53
nothingmuch ok, so just go for it =)
any help is appreciated 22:54
if you write a test, which is 50% good
that's still 80% of the work
ninereasons (since y'all are being so careless^h^h^h^h^h^h nice)
nothingmuch carelessness has brought this project where it is today
it's autrijus' mantra
and it works =)
theorbtwo You're a meta-comitter now, nm?
stevan nothingmuch++
nothingmuch committerbitter 22:55
=)
stevan me too :)
nothingmuch you should also be, theorbtwo
you have a funny sleep cycle
theorbtwo Very.
stevan i went to sleep on night not one,.. and woke up the next morning and I was :P
with theorbtwo we would be covered 24/7 for sure :P
all major time zones I think 22:56
theorbtwo ponders a reorg of AUTHORS.
stevan theorbtwo: I think it is alphabetical
theorbtwo It is.
stevan to minimize egos maybe?
theorbtwo To whit, alphebetical by what appears first on the line. 22:57
Well, I did it because that's how Aut had it. I suspect Aut had it that way because that is the correct way to alphebetize Han names.
theorbtwo wonders if autrijus minds "aut". 22:59
stevan how were you going to re-org it anyway?
nothingmuch i think Autrijus Tang is actually reversed for a westerny appearance, otherwise Bestian Tang won't make sense, right?
we'd better ask him 23:00
stevan who is Bestian?
iblech++ # for Geo::Distance this time
theorbtwo Oh, I assumed they were unrelated people who happened to share a family name. There aren't that many of them.
nothingmuch in the perl6 interview he autrijus mentiones 'math minded brother Bestian' 23:02
theorbtwo I meant reorg it to be more like the linux kernel's authors file, which is more like a flattened hash. 23:03
jabbot pugs - 1069 - Port of Geo::Distance 0.08.
pugs - 1068 - more File::Spec documentation and cleanu
stevan never seen it, so I have no idea what you are talking about :) 23:04
nothingmuch i want one variation that takes two args
how do i do context polymorphic functions in haskell?
and gives back a pair
and one that takes one arg
and gives back a list
stevan ok, time for me too eat and hang with the wife and kids 23:05
see you guys later
nothingmuch beh!
family smushiness is for nerds!
stevan nothingmuch: isnt it past your bedtime :P
nothingmuch if you are really a geek then you would be more|less nerdy 23:06
more&less nerdy
pushing it, stevan
stevan nothingmuch++
theorbtwo++
autrijus++
nothingmuch everyone++
stevan iblech++ # for the Email::Simple test suite in perl6 too 23:07
nothingmuch we are very touchy-feely with all this ++ stuff
we should start hugging each other
stevan nothingmuch: its a virtual hug over the wires
ok,.. I am going for real now
adios
nothingmuch ciao!
theorbtwo Later, stevan. 23:09
theorbtwo wonders. 23:10
perlbot karma everyone
perlbot Karma for everyone: 2
theorbtwo wishes there was an easy way to say "keep going till you can't keep going no more" in a regex. 23:23
That is, make everything optional.
Sadly, I think that's a bit too close to AI to be doable.
luqui theorbtwo: why do you want that? 23:26
theorbtwo What I'm doing at present moment is a regex to grok the (present) AUTHORS format. 23:27
...in which pretty much everything is optional.
luqui what's wrong with a bunch of question-marks? 23:28
theorbtwo It's rather verbose, and I keep having to introduce (?: ... ) blocks for them. 23:29
luqui oh, that's all
I thought you were talking about a real problem
anyway, it really is bedtime now (up for 23 hours). night everybody 23:30
luqui &
theorbtwo Sleep well.
And long!
ihb luqui: is development of Math::LOgic::Predicate dead? 23:32
nothingmuch pugs -Ifoo is implemented 23:43
twas a bit tricker than I thought 23:44
1070 23:50
jabbot pugs - 1070 - pugs -Ilib hack (getArgs added in getLib 23:53