6.2.10 released! xrl.us/hxnb | geoffb's column (/. ed): xrl.us/hxhk | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net
Set by autrijus on 10 October 2005.
PerlJam autrijus: I'm "playing" so that I can get familiar enough with svk to use it on a regular basis 00:00
autrijus and if you've synced only until the Last Big Branch it should be ok
so use "h" or "-20" etc
instead of "a" which would take hours anyway.
nodnod, but parrot is somewhat perculiar.
woot, both lightning talks accepted. 00:14
Juerd Congrats
I'm sleeptyping by the way
autrijus cool, a fellow sleepytyper 00:16
revdiablo Does that mean Juerd is from the future too? 00:17
autrijus revdiablo: no, he has to be a sleepingcommitter for that
revdiablo Ah so in the future they not just chat but even work while sleeping? Impressive. 00:18
Juerd I've sleepcommitted before
autrijus yes, in 2027 we discovered that alpha waves during sleep can be harnessed into productivity, using REM modulator
Juerd REM modulator ++ 00:19
mugwump Do you suffer from working all night, only to wake up and realise it was all just a dream, and that you'll have to do the work again? Try the new ACME REM modulator 00:24
stevan autrijus: yes, Ruby does inherit class methods 00:29
and I responded to dconway
he is wrong,.. &new is not a class method
it is an instance method on Class
this is how Smalltalk, CLOS, etc do it,.. and pretty much how all the literature I have read in the past few months explains it 00:30
autrijus: I knew this proposal would be controversial,.. espcially for the Java/C++ folks 00:31
autrijus stevan: yeah, it is extremely counterjava
stevan but Java does not have meta-classes, or any real Meta-model for that matter
in fact,.. new is a keyword,.. not a method at all
same with C++
autrijus stevan: I think dconway is not confused after all; he was pointing out a "pattern of use" by perl5 oo folks
mugwump Java has Run-Time Type Information / Reflection, I thought...
autrijus which is shared by ruby
that is having class utility methods and expect them to be inherited 00:32
also there is this extremely naughty p5 "idiom"
stevan I can see inheriting instance utility methods,.. but class utility methods? 00:33
autrijus which is a method serving as dual class/instance
stevan: class utility methods, like File::Spec.canonpath
against File::Spec::Unix.canonpath
not a shining example
but that is somewhat an idiom too
stevan yes, but what use it the method call syntax is you ignore the invocant?
autrijus I don't know, maybe just to get mixin behaviour? 00:34
stevan File::Spec's interface is pretty much universally accepted as being wrong i think
autrijus I agree and I see your point perfectly :)
stevan I know, devils advocate and all :)
autrijus aye. 00:35
also, there is an explanation cost.
"when you want to do this, don't, instead use a Role"
stevan I think File::Spec's behavior could accomplished with Roles
autrijus "when you want to do this, don't, instead use a Eigenmethod"
etc
stevan well the transition from p5OO to p6OO will be painful for many people I think
but that has nothing to do with class methods :) 00:36
autrijus which is, again, not a bad idea, it's just a bit more drastic than the current spec.
stevan I guess I dont see it as all that drastic
theorbtwo It is a happy thing that most valid perl 5 ways of doing things will be valid perl 6 ways of doing things.
autrijus what theorbtwo said...
theorbtwo They will just no longer be the best way to do it.
mugwump for instance, can't you still have blessed hashes/
?
theorbtwo You can. 00:37
autrijus ...yet really, I'm devil advocating, as I agree with stevan's main point, and I think the old method can be emulated with a different metaclass.
stevan theorbtwo: that is a valid point
theorbtwo AFAIK, you can even still rebless them. (But please don't.)
stevan mugwump: you can, it is simply another "repr" type
I think most of the p5 behavior will end up being implemented "on top" of the meta-model though 00:38
emulation really
I also think while the conversion might be painful for some, the benefits of switching will end up far outweighing the benefits of not switching 00:40
you get so much "for free" with p6 OO that is just plain annoying or difficult to do in p5 OO 00:41
mugwump So what ever happened with the ./foo($bar) ==> $.foo($bar) thing ? 00:42
stevan wonders if that dead horse is anything more than bones and little bits of rotted flesh 00:43
autrijus just watch the necromancers on p6l.
lvl 1, cantrip: "dead horse reanimation"
mm, cantrip is lvl0
stevan autrijus: in the end, if class methods must be inherited, they can be fairly easily with the eigenclass model, so I am not worried 00:44
I just figured I would try :)
autrijus stevan: it may be worth it to demonstrate on p6l how to do that.
theorbtwo wonders if anything has happened to perl6 in the last 6 months, or if everybody has been playing with javascript instead...
autrijus theorbtwo: er you mean the language?
theorbtwo Yeah.
stevan autrijus: well in order to do that, you really need to have it in the core-metamodel 00:45
it goes fairly deep actually, the best place for the explicit eigenclass createion is in Class::CREATE
autrijus stevan: hm? it can't be turned on from user code by annotating the class so it CREATEs differently?
theorbtwo: there's been much abolishing of unworkable ideas
and there are significantly less handwaving 00:46
but on the whole nothing much has been added
stevan autrijus: maybe with a subclass of Class,... I will try it and see 00:47
autrijus stevan: yeah, somehow I think that is the best way out
theorbtwo There's a bit less magic around, then? (As in "you'd think that, but the majickal nature of pairs||junctions||foo means that something-bind-boggling happens instead"?
autrijus theorbtwo: yes.
theorbtwo Oooh, good.
autrijus theorbtwo: due to large part by a good interaction between p6l and #perl6 and spec-based tests -- iblech I think is very dedicated on this 00:48
theorbtwo Oh, spec-based tests sounds very good. 00:49
theorbtwo wonders how he can catch up. 00:51
autrijus joyfully? :) 00:54
theorbtwo: or, write some fair-sized project with p6 :) 00:55
but I really need to sleep now. 00:56
journal up. ciao!
wolverian nice post from larry
autrijus stevan: Larry out-insanified you 00:57
theorbtwo g'night.
autrijus but I'll proc it tomorrow. :) *wave*
stevan was busy writing Java for david :P I will ogo read Larry;s post now 01:07
wow,.. Larry did out-insanify me, but a long shot 01:19
s/but/by/ 01:20
I am also not sure if he is agreeing with me or not
"I think most class methods should be written as submethods instead." implies that the class methods will not be inherited
since submethods are not inherited
I am also not so sure about the "class as undef" thing either 01:21
I think it is just as easy to reason about a class by inspecting the class instance than it is by inspecting a special instance which evaluates to undef 01:22
oh well
stevan goes off to let Larry's insanity sink in
svnbot6 r7570 | stevan++ | Perl6::MetaModel - cleaning up some details in Pneuma about how Eigenclasses are named 02:16
r7571 | stevan++ | Perl6-MetaModel - 02:22
r7571 | stevan++ | * added test to show that the behavior of inheritable class methods could be
r7571 | stevan++ | accomplished with a subclass of Class. It works, however there is some room
r7571 | stevan++ | for improvement.
02:52 sleepster is now known as typester 03:08 revdiabl1 is now known as revdiablo
QtPlatypus asks "In pugs will perl5 re's work even if perl5 isn't compiled in?" 03:57
mugwump QtPlatypus: yes, it's pcre 03:58
geoffb QtPlatypus, yep -- they're handled with PCRE
sili oh nos 04:07
QtPlatypus ?eval class foo { $.status}; class foo is bar {}; my $test = foo.new; $test.status = "1"; 04:38
evalbot_7571 Error: Undeclared variable: "$?SELF"
QtPlatypus ?eval class foo { has $.status}; class foo is bar {}; my $test = foo.new; $test.status = "1"; 04:39
evalbot_7571 \"1"
QtPlatypus ?eval class foo { has $.status}; class bar is foo {}; my $test = foo.new; $test.status = "1";
evalbot_7571 \"1"
QtPlatypus ?eval class foo { has $.status}; class bar is foo {}; my $test = bar.new; $test.status = "1";
evalbot_7571 \"1"
scook0 ?eval say'hello' 06:34
evalbot_7571 hello bool::true
xinming_Beijing the operator '?? ::' is changed to '?? !!' for now, But '?? !!' is just a tmp solution. 06:35
So, I wonder, Could we use '!? !:' instead of '?? ::'?
scook0 xinming_Beijing: I'm not sure that's *better* 06:36
xinming_Beijing hmm, ?? :: operator is doing something a bit like `if test-statement { true...} else { false...} ` 06:37
scook0 xinming_Beijing: the thing I quite like about `?? !!` is that it kind of reads like this: 06:39
`is $condition true?? if so, then $true -- but it's not!! so $false`
the question comes after the conditional 06:40
xinming_Beijing So, ?? :: is not a operator for "caculating", So, we can use ! prefix to specify the statement, and ? for the test, the answers are seperated by :
hmm, hope what I say is understandable.
scook0 xinming_Beijing: sorry, I don't follow 06:41
xinming_Beijing I just wish to make it be like C. :-)
scook0 please give a concrete example of your syntax
it is like C, except s/?/??/ and s/:/!!/
xinming_Beijing if true { yes... } else { no... }; true !? yes !: no ; 06:42
scook0 ??!! is still an expression (with a value), not just a statement
what's wrong with `$cond ?? $true !! $false`?
nothingmuch (if you backlog): no need to run any more tests for me; I got a feather account today, so I'll use that 06:44
xinming_Beijing scook0: hmm, for C language, we use '? :' and perl 5 borrowed this, And to perl 6, It then becomes '?? ::' which is also understandable to most people. But for '?? !!', IMHO, It's changed too much. So, I'd prefer '!? !:' 06:45
scook0 xinming_Beijing: I can see what you're saying
but I don't think it's worth
(worth) it
xinming_Beijing lazy people will agree with what I said. :-) 06:46
scook0 I think '!? !:' is very ugly
xinming_Beijing: but lazy people won't bother to agree with you :P
I don't think !?!: is close enough to be of any benefit 06:47
so people might as well learn ??!!
$work bbl &
Cryptic_K bbl 07:41
dduncan I think that the '?? !!' syntax is actually beautiful, and much better than either '? :' or '?? ::'
geoffb agrees with dduncan, though perhaps not as strongly 07:43
svnbot6 r7572 | gaal++ | golf haddock target fix 07:57
dduncan well, the lone ? or : look too much like other operators that do different things, and the :: looks too much like a package name part ... 07:58
plus, the !! says 'not' which fits in with it leading the result when the conditional is not true 07:59
nap time! 08:00
gaal .ping for <eric256 autrijus> 08:27
eric256: please add this after line 19 of ~/auto/autobuild.sh : 08:28
make haddock
autrijus: please make haddock.pugscode.org point to the output of eric256's eval("!!" :lang<shell>) :-) 08:29
autrijus okay, where would that be on feather? 08:33
gaal ~eric256/auto/pugs/dist/doc/html/ 08:34
hmm, well, eric should put a symlink from his public_html
autrijus yes. 08:35
gaal haddock/, presumably.
autrijus ponders just go ahead and change autobuild.sh 08:36
gaal now to figure out how to have haddock link to the source :)
autrijus I can symlink to my public_html
gaal you are teh r00t?
autrijus yeah, I pwn0rz 08:37
gaal bbiab 08:38
autrijus decides to wait for eric256 09:06
pdcawley_ What's this week's syntax for declaring a default argument value 09:13
autrijus you mean parameter value. 09:15
sub foo (?$blah = 3)
that had not changed
pdcawley_ Good oh. When I say 'this week' it's a general this week :) 09:16
gaal parameter => property of the signature, parameter value => property of the particular call? what's an argument then? 09:17
.oO(about time i get this terminology right)
09:18
autrijus gaal: you declare parameters; user supplies arguments
so "default argument value" works, I guess, operationally
rafl autrijus: How could installing the c includes from src/ be done using cabal? 09:19
autrijus I was thinking that because you put it on the decl line it belongs to parameter
but the S06 nomenclature is just "default value"
gaal that has a built-in mnemonic to it. the user often indeed does supply arguments :)
autrijus rafl: probably you need to do it by hand. cabal doesn't support that natively
rafl: and cabal usually handles with this kind of thing using hooks 09:20
rafl autrijus: OK, are they really needed to compile something using the haskell lib?
autrijus probably not
rafl autrijus: I fear those need to be written in haskell..
autrijus er no, it can call out to shell... 09:21
rafl Phew..
autrijus in any case, if you really need it you can throw it into our Makefile.PL targets at first
rafl autrijus: How could one find out if the headers are really needed?
autrijus rafl: the test.hs passed linking 09:22
so they are not
you can attempt again after nuking source dir
just to be sure
rafl autrijus: Works. I linked outside of the sourcedir where the relative paths to the include can't be found (what is the origin of my problem).
autrijus k. 09:23
pdcawley_ feels the urge to yell DON'T BE SILLY! at stevan...
rafl autrijus: OK, so I guess we should get out those include-dirs that lay in the src-dir.
autrijus: Compiling the c-bits already works for me without those include-dirs. The hs-stuff not. How can I include a c header file with a relative path to the haskell file? 09:25
autrijus prolly can't, so try hacking pugs_build to canonize all C headers?
rafl "canonize all C headers" --verbose 09:26
autrijus rafl: turn all include-dirs into rel2abs canonpat 09:30
h
have build_pugs proc them 09:31
rafl autrijus: Wouldn't help. Then we still have include-dirs that lay in the src-dir and aren't needed for linking.
autrijus rafl: you can include with 09:32
{-# INCLUDE "../../include/blah.h" #-}
rafl: ok, but we don't have .h files for ourselves -- all the .h are for c bits from upstream 09:33
if you do factoring them out to includes/, that makes merge slightly harder
but if you think it's worth it, do it
rafl Well, as we already found out: We don't need them to be installed or something like that. So why should they be put into includes/? 09:35
I think removing those paths from include-dirs and make pugs compile would be enough.
autrijus sure 09:36
that can do too.
want to take a stab? :) I think implicitly you have a include-dir of "." 09:37
so indeed that should work.
rafl Does the cabal system chdir into where the .hs file is? Or is pwd always the / of the src-dir during hs-compilation? 09:45
autrijus I think it's always src-dir
rafl OK, thanks. 09:48
xerox Are there anonymous functions in p6? 09:54
QtPlatypus Yes
xerox What is the syntax to create them?
QtPlatypus sub { ... }
autrijus { ... }
xerox Where is the argument list?
autrijus ?eval { 4 + $_ }.(9)
evalbot_7572 13
autrijus xerox: sub ($x) { ... } 09:55
-> $x { ... }
{ ...$^x... }
any one of the three ways
xerox ?eval ($x) { 4 + $x }.arity
evalbot_7572 Error: unexpected "{" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
xerox I wanted to try arity <blink>
autrijus ?eval sub ($x) { 4+$x }.arity
evalbot_7572 1
autrijus ?eval -> $x { 4+$x }.arity
evalbot_7572 1
xerox Woot.
autrijus ?eval { 4+$^x }.arity
evalbot_7572 1
xerox I mean, wot.
?eval { $^x + $^y }.arity 09:56
evalbot_7572 2
xerox Time to get pugs :D
autrijus *grin* 09:57
xerox It's better to darcsget --partial or it's not too big/slow ? 09:58
autrijus partial is fine 10:01
xerox Your video is very nice :D 10:02
autrijus the motd one? :)
xerox Yeah :D 10:16
Is this problem known? "Could not find module `Language.Haskell.Syntax': it is a member of package haskell-src-1.0, which is hidden (imported from src/Pugs/External/Haskell.hs)" Though the package isn't hidden, and it seem to contain that module. 10:26
autrijus hm, you have hsplugins? 10:28
is it exposed properly?
xerox Yep
It's not enclosed in parens
autrijus look at your Pugs.cabal 10:29
in the pugs src dir
do you see haskell-src ?
xerox Nope
autrijus that may be why 10:30
rep xerox what video?
xerox rep: www.pugscode.org/talks/oscon05/movies.html
autrijus xerox: look at the last line of cabal
do you see -DPUGS_HAVE_HSPLUGINS ?
xerox Yes autrijus 10:31
autrijus ghc 6.4.1?
xerox Yep.
autrijus ok fixing 10:32
xerox :-D
autrijus fixed
pull in another minute or so 10:33
xerox++
rep heh nice video 10:34
xerox Thanks autrijus, I'll try :D
I think this is my first ++! Heh.
autrijus hm, pulling from darcs is slow 10:36
svnbot6 r7573 | autrijus++ | * add hsplugins to dependencies in Cabal file; this is
r7573 | autrijus++ | apparently required to build with hsplugins on xerox's
r7573 | autrijus++ | machine.
r7573 | autrijus++ | * add xerox to AUTHORS.
autrijus I did tag every revision as droundy instructed :-/ 10:37
xerox Woot.
I didn't deserve it :-)
But yes, it's kinda slow.
(Still running)
autrijus you can always switch to svn :) 10:38
autrijus ponders what makes it that slow
xerox And there is no heavy bandwidth consumption
autrijus nor cpu
which is very weird
xerox it's just some do sleep =<< randomR ..
autrijus that is not good news :/ 10:39
xerox dunno in fact
autrijus svn.openfoundry.org/pugs/ is the svn master repo
"svn co svn.openfoundry.org/pugs/" gets you that.
hm, maybe I should consult with droundy again
xerox is it possible to update with svn, and keep working with darcs, and back and forth again? 10:40
autrijus not really, I don't think
hm, it's taking longer than a fresh get
that is not very right
(if you prefer the darcs experience, you can try svk :))
xerox it's taking damn too long, indeed 10:41
It seems I have svn installed for some reason, let's smoothly recover this failure with it :-\
Odin- likes the name: Subversion. Comedy gold. 10:43
xerox Okay, it passed the previous point of failure, autrijus++ 10:46
autrijus :))
xerox real 18m50.220s 11:23
user 16m13.613s
sys 0m22.497s
Juerd I just killed a pugs running t/builtins/sprintf_and_as.t on feather 11:26
It had been using lots of CPU for a while
If possible, please have a look into what might have been causing it 11:27
gaal looks
Juerd The specific instance was in /home/scook0/svk/pugs
gaal r7573/win32 doesn't exhibit this, checking on feather 11:28
xerox How does one specify new bindings in pugs? 11:29
11:32 wilx` is now known as wilx
gaal Juerd: looks like a bug in scook0's working pugs. 11:36
scook0: ping
scook0 gaal: pong
svnbot6 r7574 | iblech++ | * Usual svn props.
r7574 | iblech++ | * t/pugsrun/12-script-args.t: skip on PIL2JS, added an appropriate chdir()
r7574 | iblech++ | call, fixed the expectations of .perl.
r7574 | iblech++ | * PIL2JS: P6 Prelude::JS, Prelude::JS::Str: Stubbed sprintf.
scook0 shall I kill my test run?
gaal i think Juerd freed it for you (unless it's hanging somewhere else)
which it might be, builtins/ is at the start of the run. 11:37
scook0 yeah, it seems to be continuing fine now
gaal scook0: it's after the first subtest passes. 11:38
xerox :e is The Backdoor!
scook0 does `make test` launch a new pugs for each test? 11:40
gaal yes.
each test *file*
(of course :)
scook0 I think it's hanging on `t/examples/examples` atm...
gaal the harness (both for make test and for make smoke) is a perl5 process.
scook0 is glad he ran his test under `nice` 11:41
gaal you can run one test manually, either simply do ./pugs path/to/test.t
or with prove -v path/to/test 11:42
for both, you need to put Test.pm in your PERL6LIB
and for the latter, you need to set HARNESS_PERL to `pwd`/pugs
xerox: new bindings, you mean like p5's *alias = \&some::func? 11:45
xerox gaal: I just want to name things
gaal ?eval sub f1 { say "moose" } my $x := &f1; $x()
evalbot_7574 moose bool::true
xerox ah, sub <name> <args> { <body> } ? 11:46
gaal ?eval sub f1 { say "moose" } my &alias := &f1; alias()
evalbot_7574 moose bool::true
gaal args is part of the optional signature. this should work too: 11:47
?eval sub f1 (Int $x) { say "moose: $x" } my &alias := &f1; alias(42)
evalbot_7574 moose: 42 bool::true
xerox Oh, there are types too. 11:48
gaal s/part of the optional signature/an optional part of the signature/
xerox Is there an "lispy" &rest ?
gaal s/args/parameters/
what's rest? you mean a tail of a list? (/me doens't speak lisp)
xerox Maybe I just need to know how to get a list as argument 11:49
gaal continuation?
xerox Maybe, I need an introduction to p6 :)
autrijus xerox: sub car (@x) { @x[0] }
xerox: look at docs/quickref/
xerox (suitable for a lambdafolk) 11:50
gaal autrijus: wanna resume the lexical pragma stuff?
autrijus gaal: maybe tonight... I'm trying to get my four talks -- all due next monday, none ready -- done 11:51
gaal okay :)
autrijus sorries :) 11:52
gaal four? vb++, tolkien++, and what else? :)
no worries anyhow :) 11:53
autrijus gaal: pugs++ and haskell++ 11:55
gaal hee
xerox joins the {pugs,haskell}++ party 11:56
autrijus xerox++
scook0 xerox: for &rest, I suspect you want `sub foo ($arg1, $arg2, *@rest) {...}`
xerox Thanks!
scook0 and @rest will get any extra positional arguments 11:57
?eval sub foo(*@args) { say @args }; foo('hello', 'world');
evalbot_7574 helloworld bool::true
xerox ?eval sub (*@args) { say @args }.arity 11:58
evalbot_7574 1
xerox ^_^
What is " list $foo # $foo" supposed to mean?
scook0 arity is not particularly reliable at the moment
xerox arity made me download pugs, hehe. 11:59
scook0 xerox: what are you reading? (where's that example from?)
autrijus xerox: it means "evaluting (a) in list context returns [a]"
if a is a scalar, that is 12:00
xerox scook0: the quickref
pugs> map { $_ + 1 } [1,2,3]
(2, 3, 4)
Woot, I like this.
autrijus ?eval map &infix:<+>.assuming(1), [1,2,3]
xerox Partial application with verbose syntax? :) 12:01
autrijus yeah :)
scook0 ?eval [+] 1..10
xerox Uh.
evalbot_7574 (2, 3, 4)
55
xerox shackes scook0
That's nifty
scook0 the reduce meta-operator 12:02
?eval [1, 2, 3] Ā»+Ā« [10, 20, 30]
evalbot_7574 Error: unexpected "\\" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
xerox I'd call it fold
autrijus ?eval [=>] <foo bar baz>
evalbot_7574 ("foo" => ("bar" => "baz"))
xerox Ā»+Ā« ?!
scook0 ?eval [1, 2, 3] >>+<< [10, 20, 30]
evalbot_7574 (11, 22, 33)
autrijus xerox: it's fold, at the associativity of the operator within
scook0 xerox: the 'hyper' metaoperator 12:03
applies + (or whatever) element-wise
autrijus woot, no need to hack Spork anymore
native spork-esque support via XUL 12:04
wonderful
(for takahashi)
xerox slides?
autrijus yeah, piro.sakura.ne.jp/xul/applications/...ahashi.xul
and the .css
it's like S5
but far niftier
(particularly because you can write in wikisyntax) 12:05
xerox autrijus: and how do you convert the wikisyntax afterwards? 12:06
autrijus xerox: the XUL does it for you 12:07
that is the beauty
via javascript
xerox stares at the .xul
autrijus praises crazy .jp hacker and forgives their use of shiftjis 12:08
scook0 autrijus: I'm beginning to suspect that I may have to give up on my parser patch :( 12:09
autrijus scook0: :(
scook0: try commit them as comments
scook0 I was hoping to get it in before demagicalizing pairs began (that being my whole motivation) 12:10
but it just causes *so* many really subtle parsing bugs
xerox autrijus: I can't understand the links, damn nice-looking-glyphs! Where can I grab it to try? :)
autrijus xerox: wget the .xul 12:12
and the .css
and modify the .xul file
done
web application, man
G2 Anyone used Template Toolkit to create PDFs?
autrijus G2: no, I usually use PDF::FromHTML or PDF::Template 12:13
G2 Never got either to work
autrijus scook0: check them in as comments I think, so I can relook
G2 Will have another look
scook0 autrijus: will do
(and I was so proud of having fixed `foo.bar`...) 12:14
xerox autrijus: whoa.
G2 autrijus: I wonder why you use PDF::FromHTML ;-)
scook0 oh, I had to tweak `notFollowedBy` in Parsec, to make its type signature more general
autrijus G2: I wonder why too :)
scook0: that part you can always commit 12:15
xerox autrijus: I think I'll use it, I have to make some slides for school, how cool :)
autrijus xerox: :D
xerox: modify the .css to adjust fonts, too 12:16
xerox Yeah :-)
autrijus but I think it's so easy it will definitely replace spork in my toolchain :)
ok, I need to be offline for a bit
to Really Focus
bbiab... *wave* 12:17
xerox waves back 12:19
autrijus xerox: oh btw
if you focus your mouse cursor to the top of canvas
you can see a control bar
that let you scroll thru the slides 12:20
_and_ it includes an inline editor
xerox Yeah, I saw that!!!
autrijus there is something very crazy about this
xerox Edit in wiky and play!
autrijus so... enjoy. *wave* &
xerox :-) 12:21
svnbot6 r7575 | scook0++ | * Commented-out revised version of arglist-parsing patch 12:30
r7575 | scook0++ | (based on r7439)
r7575 | scook0++ | Thanks anyway to nothingmuch++ and autrijus++
r7575 | scook0++ | * Generalised notFollowedBy's signature
G2 autrijus: PDF::FromHTML works fine. Cool. 12:33
svnbot6 r7576 | iblech++ | PIL2JS: 12:36
r7576 | iblech++ | * Prelude::JS::Array: Implemented &uniq (but unsing a O(n^2) algorithm (push
r7576 | iblech++ | unless $elem == any(@already_pushed)) -- waiting on .id or eqv hashes).
r7576 | iblech++ | * Prelude::JS::Array, Prelude::JS::Operators: Implemented &zip, Y, and ?\194?\165.
r7576 | iblech++ | But: @a Y @b doesn't work yet, as this is desugared to infix:<Y>(@a,@b), and,
r7576 | iblech++ | as &infix:<Y> has a signature of (Array *@arrays) (and thus provides list
r7576 | iblech++ | context to its arguments), the @a,@b gets flattened...
xerox How does one declare a numeric variable? 12:37
scook0 xerox: a 'numeric variable'? 12:38
xerox $x = 2 12:39
?
scook0 ?eval my $x = 2; say $x
xerox my.
Thanks :-)
scook0 xerox: 'my' declares a lexical var
there are also a bunch of other declarators
xerox Like? 12:40
scook0 'our' for package variables
xerox what is .tr ? 12:41
scook0 umm...I can't remember the others off the top of my head
xerox No problem :-D
QtPlatypus .tr translate. 12:42
scook0 checks AES
cognominal I think Num is float and Int is integer
?eval my Num $x = 2; say $x
scook0 technically speaking, I think Num also includes rationals and arbitrary-precision integers though
evalbot_7575 Can't exec "./pugs": Permission denied at examples/network/evalbot//evalhelper.p5 line 42. 12:43
Can't exec "./pugs": Permission denied at examples/network/evalbot//evalhelper.p5 line 42. 12:44
wolverian wow, feather was SLOW for a few minutes there 12:45
kolibrie good morning stevan!
rafl wolverian: ACK. 12:46
stevan morning kolibrie
svnbot6 r7577 | iblech++ | PIL2JS: libjs/PIL2JS.js: +"0d123", +"0b1010", +"0o123" all work now (this gives 12:52
r7577 | iblech++ | us five more passing tests).
xerox ?eval [<] [1,2,5,3,4,6] 12:54
evalbot_7577 bool::true 12:55
xerox O_o ?
QtPlatypus ?eval [<] (1,2,5,3,4,6)
evalbot_7577 bool::false
xerox Oh.
scook0 hmm, what else... 12:56
?eval 3 < 1|4
evalbot_7577 bool::false
scook0 urk
xerox What are '[' and ']' used for, if not lists? 12:57
scook0 ?eval say(3 < 1|4)
evalbot_7577 any(VBool False,VBool True) bool::true
scook0 xerox: arrays
xerox Ah!
QtPlatypus xerox: Anonomouse refrences to arrays 12:59
?eval ref [1,2,3]
evalbot_7577 ::Array
xerox Is there a way to see the type of something in pugs?
QtPlatypus just showed you 13:00
xerox Like, 'ref ref' :D
Or, a-la-GHC, :t ref
scook0 xerox: nope 13:01
wolverian ?eval ref((1)), ref((1,2))
autrijus xerox: not until 6.2813 :)
evalbot_7577 (::Int, ::Array)
xerox approaching 2pi?
autrijus yup
xerox I wonder if there is one, I say one, not cool thing about pugs.
autrijus *smile* 13:02
xerox Oh yes, supporting OO... <grin>
^_^
autrijus lol :)
timtowtdi and all that.
(and I think there are a significant continent in Haskell hackers that wants subtyping as well) 13:03
xerox What is subtyping?
autrijus "class F is G" 13:04
F is then a subtype of G
xerox How does it differ from typeclasses?
cognominal is there a Carp equivalent in pugs? 13:05
autrijus cognominal: yes, "die"
(which is eq to "confess") 13:06
but not carp() yet
cognominal oki
xerox pugs> die
*** Died
Happy happy, joy joy.
cognominal another :q :) 13:07
xerox :D
autrijus xerox: cf. www.haskell.org/tmrwiki/FpVsOo
xerox TIMTOWTDI
autrijus woot, the Pugs Mug arrived 13:08
cafepress++
if orwant makes to euro oscon, maybe I should give the mug to him
in accord to the biblical principle "a mug for a mug" 13:09
cognominal :)
nothingmuch morning 13:19
kolibrie morning nothingmuch 13:20
nothingmuch hi ho!
kolibrie nothingmuch: though, isn't it afternoon where you are? 13:21
nothingmuch yeah
but i like the word morning
kolibrie it is kind of nice
nothingmuch and since for many other people it is morning, it doesn't really matter ;-)
kolibrie :)
cognominal ?eval say ref rx|a| 13:31
evalbot_7577 Pugs::Internals::VRule bool::true
cognominal should not that be something like Regex? 13:36
autrijus that should be Rule 13:38
Juerd j/last juerd 3 13:50
eh.
stevan autrijus: did you see the "inheritable class methods with a subclass of Class" test? 14:07
Limbic_Region my apologies Juerd, I started replying to your Feather email before realizing you wanted them in a .plan file
I sent the reply anyway as I am not currently able to login to Feather
Juerd Limbic_Region: Paste it later :) 14:11
I'll optimize my next message for single pass parsing :)
eric256 can't beleive people think pod comments count as multi line comments when most other language have a quick way to do it 14:12
Juerd Limbic_Region: Re hardware failures: the system does use a RAID-1 array 14:13
theorbtwo eric256, is pod really that hard?
Juerd eric256: I don't believe people think they need multiline comments. They're nothing but trouble.
The only reason to want them is having a stupid editor that won't let you easily s/^/#/m 14:14
stevan is anyone else having issues connecting to openfoundry.org?
svn.openfoundry.org to be more specific actually 14:15
autrijus it worksforme 14:16
try again?
(and yes, I saw your test) 14:17
stevan hmmm, still cant get it,.. it keeps redirecting to 0.0.0.0 which is really odd
autrijus try hardcode in etchosts: 140.109.17.109 14:18
also try web browser: svn.openfoundry.org/pugs/
stevan yes, the webbrowser is not workting either
autrijus it's local to you I think.
stevan yeah,.. probably,.. I am gonna restart,.. see if that helps :) 14:19
much better :) 14:22
autrijus ...reboot... it cures everything! 14:23
eric256 Juerd pod isn't hard it just not comments.
and i think blaming an editor because the language lacks muliline comments is dumb 14:24
PerlJam eric256: the language does not lack multi-line comments. 14:26
eric256 it does indeed. it has multiline inline documentation. that is not the same. and its =begin comment is far longer than /* or whatever c++ is. However, if they removed the newline restriction in p6 then its at least usable 14:27
PerlJam eric256: and why don't "pod comments" count? Why must there be a "quick" way?
svnbot6 r7578 | stevan++ | Perl6::MetaModel - 14:28
r7578 | stevan++ | * added example of PlugIn classes/roles described in
r7578 | stevan++ | recent p6l post
eric256 because i'm lazy? because pod comments implie documentation, while inline comments can be used to temporarily remove code
if my goal is documentation then pod comments are fine. if i'm debuging though pod comments don't realy feel right. 14:29
maybe i'm crazy, but the constant call for multiline comments would tend to say i'm at least crazy with a following ;)
PerlJam eric256: lemmings will follow each other too. 14:30
Juerd eric256: Pod is not comments
eric256 lol. yea. no one said anything about following...many people arriving at the same conclusion isn't the same as blindly following one person
Juerd eric256: Perl 6 lacks multiline comments
eric256: All true
eric256: But I love that Perl does not have multiline comments
I think they are trouble and to be avoided 14:31
eric256 why?
stevan autrijus: take a look at test 38 in the meta-model (which i just commited), it is a very nice (ab)use of Roles I think :)
Steve_p Multi-line comments are evil
theorbtwo "< eric256> ... crazy with a following ;)
Juerd eric256: It's impossible to see that something is commented.
theorbtwo "< eric256> lol. yea. no one said anything about following..."
Juerd eric256: Except by reading huge chunks
theorbtwo Or by having an editor that syntax-hilights.
eric256 shh theorbtwo i was hoping no one would notice
Steve_p eric256, I've seen far too much abuse of them programming in C to think they are a good thing
Juerd eric256: multiline comments are used only for disabling code. Big humps of code
eric256 same is true for pod though 14:32
theorbtwo But if we go back to that, then you can M-x comment-region.
PerlJam eric256: It's very rare that I've seen people use multiline comments without putting some marker along the left side of the comments. If you're going to do that then putting a # at the start of each line is no hardship. :)
stevan Steve_p: if we followed that logic, we would not have anything to program with ;)
PerlJam eric256: and for disabling large chunks of code (for debugging presumably) there's alsways =cut 14:33
eric256 ironic that a smart editor like yours that will allow block # insertion will almost also have syntax highlighting that solves your issue with multi line comments
Juerd eric256: I cannot and will not expect my editor to be able to parse perl.
stevan perl has multi-line comments,... assuming of course all lines begin with # 14:34
eric256 to me any use of pod just feels like abusing one tool for a different job
Juerd eric256: Agreed.
stevan yeah, i agree with that too
I dont like inline pod myself
Steve_p Once you've spent a few good hours wondering why code wasn't getting executed only to find out that it was commented out all along, you haven't really dealt with abusive coding.
eric256 hopefully this is pointless because you should be able to define a macro or opertar in pugs that gives you multi line comments 14:35
stevan Steve_p: I have done that with perl too, thats just stupidity/lack-of-sleep/drunkeness
eric256 Steve_p any number of things can cause that, and any programming anything can be abused. I don't see that as argument agianst something like this
Steve_p Granted people will do dumb things. But when people want to put a hole in the bottom of a boat, don't hand them the drill. 14:38
eric256 then sure as hell don't hand them perl5 or perl6, normaly it gives them a stick of dynamite 14:39
14:39 Ikarus[zleep] is now known as Ikarus
cognominal ?eval my @a = qw( a b c); say "a" =~~ rx| @a | 14:39
oops
evalbot_7578 Error: unexpected "~" or "\"" expecting block construct, ":", term, term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input 14:40
cognominal ?eval my @a = qw( a b c); say( "a" ~~ rx| @a | ) 14:41
evalbot_7578 bool::true
eric256 why does that work?
cognominal it's equivalent to perl5 "a" =~ m/ a | b | c / 14:42
eric256 @a inside regex joins with | ? okay 14:43
cognominal yes
Juerd eric256: It's not interpolation, and there is no joining happening
eric256: But yes :)
eric256 new to p6 rules then? 14:44
cognominal it avoids ugly perl 5 stuff like eval "qr/" . join( "|", @a ) . "/"
eric256 yea its nice. just didn't know it did that ;)
cognominal I was just searching for it to avoir the forementionned eval and was happy to find it 14:45
eric256 do hashes do anything special then? /me can't picture anything useful with hashes
cognominal I bought perl6 wholesale when reading the apo about rules
Juerd cognominal: The idiom is my $re = join '|', @a; $re = qr/$re/;, to avoid eval :) 14:46
cognominal I can't imagine witht the added value of attribute grammars; laziness++
thx Juerd
PerlJam eric256: "An interpolated hash matches the longest possible key of the hash as a literal, or fails if no key matches." 14:47
eric256: (quoting S05 there)
eric256: there's more to it, but I assume you can read too :)
dev.perl.org/perl6/doc/design/syn/S05.html
eric256 thanks for the link
i hadn't read up on the rules yet because i couldn't get them to work on my windows box
PerlJam of course, there's no telling how much is actually implemented except by trying it. 14:48
eric256 yea it could be kinda fun to have a little implemented in pugs logo to put near stuff in the S documents 14:50
cognominal hum, the bool::true was return by the evaluation of the say, not printed by it 14:51
eric256 ?eval my @a = qw( a b c); "a" ~~ rx| @a |; 14:52
evalbot_7578 MkMatch {matchOk = False, matchFrom = 0, matchTo = 0, matchStr = "", matchSubPos = [], matchSubNamed = {}}
cognominal :(
eric256 ?eval my @a = qw( a b c); rx| @a |.perl;
evalbot_7578 "\{rule}"
QtPlatypus ?eval my @a = qw( a b c); "a" ~~ rx:2| @a |; 14:53
evalbot_7578 pugs: *** cannot cast from VUndef to Handle (VHandle) at tmp-Prelude.pm line 197, column 24-45 tmp-Prelude.pm line 221, column 13-25 tmp-Prelude.pm line 275, column 5-55 tmp-Prelude.pm line 61, column 30-59
ods15 YOU CRASHED IT 14:54
:P
QtPlatypus ods15: Eval bot''s nice and healthy. 14:56
eric256 yea its pretty durable 14:57
gaal it can't crash: 14:58
?eval crash
evalbot_7578 Error: No compatible subroutine found: "&crash"
gaal see?
eric256 ?eval can(Crash)
evalbot_7578 Error: No compatible subroutine found: "&can"
eric256 that same code that gave you an error on eval bot, just says unknown modifier :2 on my system 14:59
?eval my @a = qw( a b c); "a" ~~ rx:2| @a |;
evalbot_7578 pugs: *** cannot cast from VUndef to Handle (VHandle) at tmp-Prelude.pm line 197, column 24-45 tmp-Prelude.pm line 221, column 13-25 tmp-Prelude.pm line 275, column 5-55 tmp-Prelude.pm line 61, column 30-59 15:00
eric256 same version running on both.....can someone try that code localy?
anyone? 15:03
kolibrie feather says Unknown modifier :2 will probably be ignored
how is that, since evalbot_7578 is on feather? 15:05
QtPlatypus ?eval my @a = qw( a b c); "a" ~~ rx:q2| @a |; 15:08
evalbot_7578 pugs: *** cannot cast from VUndef to Handle (VHandle) at tmp-Prelude.pm line 197, column 24-45 tmp-Prelude.pm line 221, column 13-25 tmp-Prelude.pm line 275, column 5-55 tmp-Prelude.pm line 61, column 30-59
QtPlatypus What is the modifer that switches on intropolation?
rafl Just commited some major changes to the build system. Please test excessively. 15:10
Juerd Who wants to write a Perl 6 based wiki? 15:11
rafl - as soon as catalyst ist ported. ;-) 15:12
svnbot6 r7579 | rafl++ | r17088@ata: rafl | 2005-10-12 17:10:51 +0200
r7579 | rafl++ | * Made changes to remove all directories from include-dirs in Pugs.cabal that
r7579 | rafl++ | are in the source tree. They aren't installed or needed for linking, etc.
Juerd Who wants to do it sooner? :)
kolibrie Juerd: brentdax already wrote one 15:14
Juerd Is that finished then? 15:15
As in: usable
kolibrie very slow, the last time I looked at it
Juerd That's not usable :)
rafl pugs is very slow. What did you expect? 15:16
Juerd I did not expect something fast from such a comprehensive thing 15:17
But we can make something that's usable and fast
Or at least not that slow
It just won't allow doing everything by the designer's book
eric256 so port over one of the wiki modules....though i've never had any success with any of those. ;)
rafl I'd like to hear that my recent changes didn't break anything. :-)
eric256 rafl testing here 15:18
rafl Thanks.
eric256: No.. you're developing on Win32, don't you? I fear that.. 15:19
eric256 i'm running one make on feather, and one on win32...i'll let you know what happens
Juerd eric256: The point is that I'm not able to do anything 15:26
But I do want a Perl 6 based wiki :)
Or perhaps we can just put feather's site in the pugs tree 15:27
After all, everyone's a committer
autrijus: What do you think about that?
eric256 i think a wiki is better 15:30
you can't do anything? come on!! who needs to eat sleep and work for a living ;) 15:31
15:31 typester is now known as sleepster
eric256 who manages eval_bot agian? iblech? 15:35
rafl It runs on feather. Check who owns the process. 15:50
eric256: Build results? :-) 15:51
gaal the build on windows is currently broken. fixing.
pasteling "eric256" at 66.102.136.66 pasted "build resutls" (11 lines, 861B) at sial.org/pbot/13641 15:52
eric256 rafl failed on feather
rafl eric256: I'd say that's not an error. 15:53
eric256 i would too, except it stopped there and the bin version of pugs is 7578 instead of 7579
uhh scratch that
eric256 is stupid. lol
rafl accidently activated screens copy mode? That happens too often to me. 15:54
eric256 i ran feathers pugs instead of my local copy i just built 15:55
local copy seems to have worked fine
waiting for galls word to retry the windows build
rafl Great. What's wrong with win32?
gaal .hsc got borked in the makefile 15:56
you can't use single quotes for oneliners there.
rafl Hrm, why?
gaal because the windows shell, to put it mildly, sucks rotten donkey arse.
eric256 hhehe gaal++ definitly 15:57
gaal and when you try to use a make argument in a rule, like \$, it contains backslashes. in your oneliner. welcome to windows and have a nice dayt 16:02
er $< 16:04
eric256 looks lik fibonaci is currently running the eval bot 16:05
Jooon images.ucomics.com/comics/ft/2005/ft051011.gif 16:11
nothingmuch fibonaci == luqui 16:17
svnbot6 r7580 | gaal++ | unbreak .hsc.hs target on Win32 16:32
r7579 | rafl++ | r17088@ata: rafl | 2005-10-12 17:10:51 +0200
r7579 | rafl++ | * Made changes to remove all directories from include-dirs in Pugs.cabal that
r7579 | rafl++ | are in the source tree. They aren't installed or needed for linking, etc.
gaal but there's still another probelm.
anyone else getting errors with RRegex.PCRE (pcre.h not found?) 16:33
(brb)
well, evalbot is built, so obviously this isn't a problem on linux. 16:36
autrijus it killed my build too. 16:40
fixing 16:41
gaal 7579 removed includes: from the Cabal file 16:42
autrijus fixed.
gaal how come linux wasn't affected? 16:43
or it it because evalbot's autobuild doesn't make clean? 16:44
autrijus I have no idea... both are possible 16:45
hm, the PCRE.hs still dies 16:48
autrijus ponders what to do
kolibrie I'm getting this:
/usr/bin/perl -Iinc -MFile::Spec -e "my (undef, $dir, $file) = File::Spec->splitpath(shift); chdir($dir); system(q+/usr/local/bin/hsc2hs -DPUGS_HAVE_PARROT -I/var/projects/parrot/include -Isrc/syck + . $file);" src/Data/Yaml/Syck.hsc
syntax error at -e line 1, near ". )"
autrijus kolibrie: I just fixed that one.
kolibrie I'll pull again 16:49
autrijus rafl: any ideas about PCRE.hs?
gaal eek, then my fix broke unix. sorry :/
svnbot6 r7581 | autrijus++ | *hsc2hs rule: do not mention $@% in the Makefile for portability.
autrijus gaal: np :) 16:51
gaal ARGV->[0] !? 16:53
autrijus gaal: another bit of perl5 you didn't know? :)
gaal indeed
autrijus ENV->{PATH}
etc, all works 16:54
gaal i know it about hashes
ahhhh
right, same thing
heh.
vile.
cognominal any idea why my @a = << a b c >> ; "a" ~~ / @a / des not work?
autrijus you probably does not want //
PGE<->p6 interaction is currently all string level 16:55
cognominal and weirder, does that should mean anything? "a" ~~ rx| << a b c >> |
?eval my @a = << a b c >> ; "a" ~~ rx / @a /
gaal wait no, i knew %X->{foo} works. how the moose does X->{foo} work?
evalbot_7581 MkMatch {matchOk = False, matchFrom = 0, matchTo = 0, matchStr = "", matchSubPos = [], matchSubNamed = {}}
autrijus gaal: 16:56
$x->{k}
desugars to
%{$x}{k}
so X->{foo}
desugars to
%{X}->{foo}
er
gaal oy oy oy oy
autrijus %{X}{foo}
happy, no?
gaal i need a drink :) 16:57
autrijus er, I lied; s/%/$/ above
$x->{1} is $$x{1}
so X->{foo} is $X{foo}
the things you can learn via golfing... 16:58
gaal hmmm okay, still doesn't explain how the array subscripting happened
autrijus ARGV->[0]
desugars to $ARGV[0]
which acts on @ARGV
and there you go
gaal oh, "by analogy".
autrijus no, same rule.
$ perl -MO=Deparse -e 'ARGV->[0]' 16:59
$ARGV[0];
$ perl -MO=Deparse -e '$ARGV->[0]'
$$ARGV[0];
so I really meant "desugaring"
gaal wow
kolibrie autrijus++ # explaining perl5 desugaring
autrijus :) 17:00
gaal golf for portability. now where's that drink...
autrijus pass me a bottle too
stevan holds up his cup for a pour
gaal autrijus: there'll be as many as you like when you come over
autrijus gaal: indeed indeed 17:01
gaal stevan: if you come, you'll get yours too.
stevan :)
we can all meet on the top of a mountain in Turkey
autrijus I'm happy that I'm going to .au and work with damian for a few days :)
gaal it's insanely cold there, stevan.
stevan then we drink more ! 17:02
autrijus I'd rather drink over a dinner of turkeys on a mountain
gaal heh. always the practical mind
stevan drink your turkey dinners??
:P
autrijus "bring your own turkey"
stevan actually I think a nice resort on the mediteranan is a better idea 17:03
eric256 tries to recall if .au is austria or astralia
Juerd Funny. My message of yesterday seems to have reminded people that they have feather accounts
More people than normal are logged in
:)
eric256: australia
PerlJam Juerd: yep.
autrijus eric256: australia... it's summer there
Juerd: good to know :)
Juerd PerlJam: Are you one of them? :)
gaal w|wc -l # 19 17:04
PerlJam Juerd: yep. sorta
Juerd I've put online feather.perl6.nl/cgi-bin/finger.pl yesterday, by the way
I don't now if you have seen it already
PerlJam I was well aware of my feather account, but I hadn't used it in a while. Your message made me slap my forehead about the parrot development I was doing, "duh, this would be perfect for feather!"
Juerd heh 17:05
I love remote forehead slapping
gaal autrijus: the sych.h/pcre.h fix isn't in yet, is it? 17:08
(dropped from Pugs.cabal.il)
oops, what is this accidental bout of patriotism? i meant .in. 17:09
autrijus mmm patriotism
wolverian Juerd, should that be sorted somehow? 17:12
(er, I see it is)
Juerd wolverian: It's currently sorted in getpwent order :) 17:14
This happens to be uid order, but it might be passwd order instead
Or random. 17:15
xerox Happy happy, joy joy.
Juerd wolverian: See /usr/lib/cgi-bin2/finger.pl :)
PerlJam Juerd: now just make that editable by anyone so that we can all modify it such that we sort first ;) 17:16
autrijus gaal: fixed 17:18
Juerd PerlJam: No - that allows someone to remove the .nofinger support. 17:20
svnbot6 r7582 | autrijus++ | * fix pcre build by including via relative path 17:22
gaal autrijus: on win32 at least, src/Unicode.hs can't find syck.h and pcre.h 17:26
nopasting 17:27
autrijus Unicode wants syck.h and pcre.h?
k
pasteling "gaal" at 192.115.25.249 pasted "missing includes" (4 lines, 297B) at sial.org/pbot/13643
gaal it doens't want - they're not mentioned there explicitly - 17:28
nor in UnicodeC.h
must be some, uh, something else. :)
(the temp file that had the error is deleted.) 17:29
autrijus put -keep-tmp-files to Pugs.cabal.in's last line
gaal oh, my bad 17:30
i'd put the includes: back there and forgot them. works now :) 17:31
autrijus whew :) 17:32
autrijus disappears for another while, trying to produce at least some slides today & 17:33
gaal goes to celebrate Bicycle Day
eric256 i don't suppose anyone here knows how to make a mysql slave skip an entry in the log that it is stuck on? 17:54
rafl autrijus: What about PCRE.hs? 17:56
wolverian heh, I never knew C can do parametric function pointers... 17:57
autrijus rafl: nvm, fixed already
wolverian hm, can I specify signatures for scalar sub refs? 17:58
rafl Whops. I should somehow make an alias that does 'dpatch deapply-all; svk $@'
wolverian my (Int --> Str) $foo;
something like that? 17:59
rafl It's the second time I commited that debian patch accidently.
xerox autrijus: do you think a getAllocations is possible in pugs?
autrijus xerox: what's that? 18:00
svnbot6 r7583 | iblech++ | * Usual svn props.
r7583 | iblech++ | * util/yaml_harness.pl: Reverted r7579 (patch applied by the Debian package 18:01
r7583 | iblech++ | (the $SMOKERFILE thing)).
r7583 | iblech++ | * t/pugsbugs/attribute_hash.t: Fixed two typos.
autrijus wolverian: yes, what wolverian said, but currently unsupported
er
s:2nd/woverian/you/
wolverian autrijus, thanks. is that the right syntax?
autrijus afaik yes. 18:02
wolverian ah. are there tests? :)
autrijus I don't know, probably not, write some :)
wolverian will do
xerox autrijus: the latter part of:
*Reflection> :set +s
*Reflection> let f n = reset ((*) (shift g) n) where g k | n <= 0 = 1 | otherwise = k (f $ n - 1) :: Int
(0.01 secs, 790016 bytes)
autrijus xerox: sure, I think, I don't see why not, using GHC.Exts hooks 18:03
wolverian how did I say "doesn't return anything", again?
s,did,do,
autrijus if you want to hack something to Run.hs/Shell.hs, go ahead
wolverian: --> Void
wolverian ah, thanks 18:04
autrijus although if luqui gets his way, would be --> ()
anyway, Void for now.
wolverian right
should this go to syntax or subroutines (or similar)?
autrijus get a types/ dir
I think.
wolverian sounds like a really good idea 18:05
autrijus :)
wolverian parametric_references.t? :)
(I'm not very good at making up names.. oh well, writing it)
autrijus not really parametric
wolverian oh, okay
autrijus typed_variables or something
or just "variables"
wolverian this is a somewhat special case though 18:06
as in, it has a signature type
(maybe it should be Code:(Int --> Void)? I remember seeing that on p6l..)
autrijus I think --> is a tycon that cons a Code 18:08
wolverian mm right
autrijus but this part is unspecced land :)
wolverian is this :todo? 18:11
autrijus yes. 18:12
:todo<unspecced>
wolverian right
oh, I need to uh, declare the reference, then assign to it, separately in two eval() test
that has a problem with scope
autrijus use our 18:13
wolverian right. thanks :)
autrijus or something. improvise :)
bbiab...
obra autrijus: remember that laptop I bought on my way to Taipei? I resurrected it with the disk from a dead ipod 18:18
nothingmuch morning 18:19
[
how did you mount it?
isn't it way smaller?
odd, everyone seemed to say apple was not going to do the video stuff this time 18:21
autrijus obra: woot! 18:23
svnbot6 r7584 | wolverian++ | r2511@chronoa: wolverian | 2005-10-12 21:21:58 +0300
r7584 | wolverian++ | Add t/types/ and one test file there (variables.t) - awaiting an influx of type tests once things are specced :)
wolverian argh, I forgot --verbatim :(
(again :) 18:24
nothingmuch i think the next thing is going to be an apple PVR 18:25
eric256 nothingmuch....that would probably rock..i'm a pc person but just because all the good free stuff used to only be PC 18:54
wiht apple running on unix now that should let them take advantage of all the free linux projects and still be pretty stylin machines. ;) 18:55
geoffb Oh man, what a morning 19:17
obra ^H^H^H
eric256 build for win32 is failing agian? 19:23
pasteling "eric256" at 66.102.136.66 pasted "Failed Build on Win32" (11 lines, 513B) at sial.org/pbot/13648
nothingmuch "your aidum is 9 weeks old... [x] check daily" 19:33
eric256 ?? 19:34
nothingmuch i was quoting the update box ;-)
eric256 looks around for someone who understands. ;)
autrijus eric256: don't unoptimised
"nmake" again and it shall pass 19:35
you may wish to send it to [email@hidden.address] :)
nothingmuch eric256: there is supposed to be an audit of pirated software soon
autrijus (which will hopefully soon be managed via RT and hence more friendly)
nothingmuch i am the only mac user at work
everyone else had to carefully uninstall unpaid for shareware
and commercial apps they doodle around with (nobody pays for maya if they aren't a pro...) 19:36
so i poked around
eric256 that is optimized, at least according to config.yml
nothingmuch i have one pirated copy of microsoft office I didn't install
i'm entitled to a license from work, but i don't even use it
and surfer's serials, which I haven't opened (it was from march 2004 or so)
s/opened/used/ 19:37
and it's not like I really work hard to not pirate
it's just that there is tons of good, free (especially opensource) software for the mac
eric256 autrijus ... did you catch that? 19:38
i'm trying agian just to be on the sure side, but i'm 99% sure that was an optimized build 19:39
rafl autrijus: You don't want to do a minor release featuring the changes to the build sys and include stuff I recently did, do you?
autrijus: Why? Otherwise I would have to backport my changes to 6.2.10 using seperate patches do be able to do the Debian package for 6.2.10. That's not that bad but if you wouldn't mind a minor release without new features, etc. that would be easier. 19:41
autrijus rafl: pugs has no minor release, so that means 6.2.11 19:43
eric256: hmm, I could've triggered it only via unoptimised before -- 6.4.1 that is
rafl Well, with "minor" I mean without real big changes.
autrijus rafl: I'm fine with 6.2.11... but I don't have time for releng, so if you feel like it, do the changelogging and clean smoking again 19:44
and call me when you want me to upload it :) 19:45
xerox autrijus: how are the slides getting shaped? :) 19:46
rafl autrijus: OK, I'll backport the changes ;-)
autrijus rafl: I meant no offense :) 19:47
rafl autrijus: Shouldn't be much more than dpatch patch-template ... < svk diff -r... > debian/patches/foo.dpatch
autrijus: Of course.
autrijus xerox: perlcabal.org/~autrijus/tmp/haskell.xul
rafl None taken.
autrijus k
xerox is excited, and clicks the url
autrijus xerox: feedback welcome
also, patch welcome, since you can do "view source"
dduncan rafl, ping me if you want me to contribute a smoke pre-6.2.11 19:50
Juerd xerox: Why is your nick a copier brand?
xerox: Can I hate you personally whenever our Xerox copier has a paper jam? ;) 19:51
eric256 better question...why did a copier company steal his nick?
Juerd Equality works in two directions
dduncan xerox nick isn't unprecedented
xerox autrijus: there's an error on the fib example
dduncan many, many people use names that others trademarked as their nicks online
rafl dduncan: Well, I think I'll simply take my changes and patch 6.2.10 with it do to the debian package. They don't alter much. Only some includes and the cabal file. The rest will work as before (famous last words?)
xerox it was just a case
dduncan usually those nicks are the names of fictional story characters, though 19:52
autrijus xerox: what error?
xerox autrijus: is it really x + y ?
autrijus xerox: fixed
[ x+y | x ? fibs | y ? tail fibs ]
er, s'?'<-'g 19:53
dduncan rafl, so then your debian package is the same as 6.2.10 except for your own patches then?
xerox I think so, autrijus.
rafl dduncan: Right.
autrijus xerox: thanks :)
dduncan perhaps it should be named 6.2.10a or something, to differentiate it from the 6.2.10 already on CPAN
PerlJam heh ... "type rocks /typing/ sucks"
xerox autrijus: no problem :-) Is it possible to align the code snippets properly? 19:54
rafl dduncan: The debian package won't be on cpan and the changes are quite debian specific, although integrated into upstream now.
dduncan: My patches are only necessarry to make it possible to packge 6.2.10. I think another version than the official upstream version would only be confusing to users. 19:55
autrijus xerox: yes, I'll hack that part later -- content first
xerox autrijus: it is 1:1:[..] also?
autrijus xerox: or if you are into javascript/xul, you can do it too
xerox I don't know them, I'm sorry
autrijus that's fine
xerox: it is 0:1 19:56
en.wikipedia.org/wiki/Fibonacci_number
xerox I think it's not important, in any case:)
autrijus :)
rafl dduncan: Don't you think so? 19:57
xerox What is reverse [reverse] <=> [reverse] ?! :D
dduncan just a minute
autrijus xerox: just to show reverse works on a list of functions :)
xerox heh!
dduncan I wasn't paying attention to the lead-up to that question 19:58
rafl Hrm. That's not really obvious from 'reverse [reverse] <=> [reverse]' for me.
autrijus okay, it's too cute.
xerox It's cute.
rafl dduncan: well, the lead-up to that question is mainly that I didn't do enough tests before 6.2.10 to figure out that the ghc6 lib requires more special handling. 19:59
autrijus fixed.
xerox It was ok anyway :D 20:00
dduncan I didn't notice any problems at release time ... for me, all tests passed ... though prior to release there was something about a file needing indexing that wasn't, which was fixed
xerox The smartest guys attending at the talk will have an interesting snippet :D 20:01
..or even people could pose questions? hehe
rafl dduncan: The problems are that I need to register the haskell lib with ghc-pkg. That needs to be done when installin the package.
dduncan: So I wrote a script that's executed after installing.
eric256 realizes that he has two giant databases that should be in sync but now are not and begins to cry 20:02
rafl dduncan: Unfortunately the generated cabal file of 6.2.10 contains directories of the source tree in the include-dirs line.
dduncan: Those don't exist when I install the debian package.
dduncan: ghc-pkg tries to access them, though.
autrijus eric256: aww. :/
eric256: nuke one and declare the other as the master? 20:03
dduncan and so your patches to make debian work consist of rectifying this problem
rafl dduncan: Therefor the register step failes. So the changes needed to be made are removing the include-dirs that are part of the source tree and make pugs compile again. This is what I did today.
dduncan: Right. 20:04
dduncan eric256, I wouldn't be so quick to do what autrijus said
the first step is to determine why the dbs are out of sync
rafl dduncan: No only /usr/include/ and /usr/lib/perl/5.8/CORE (or something like that) is in include-dirs. This exists when installing the package in any case.
eric256 i know why they are out of sync.. one stopped responding but was still editable localy... 20:05
dduncan keep both dbs in case each has something the other needs
eric256 now the auto incremented ID's overlap which isn't good
dduncan ensure first that one copy has all the data that you need, then nuke and reclone to the other
eric256 isn't goot at all
dduncan what brand of db? 20:06
eric256 MySQL
dduncan version?
eric256 4.1
dduncan well, that's the lowest MySQL version one should have these days, so that's good
5.0 is much better, not just for the big ticket items, though its less stable I think 20:07
eric256 so i was hand updating the ID records...when it occured to me that those statments will be replicated back to the first DB changing the correct id numbers on that DB to the now incorrect ones....its like a bad bad loop
dduncan are these databases being used live right now?
eric256 so now i have to at least dump the log file from one of them....but who knows what changes will be lost ;(
of course they are...well one is.. local one shouldn't be. /me over head pages not to touch the databases ;) 20:08
dduncan why don't you dump and restore to a new third db, then do a diff between that and each of the others?
eric256 well i'm trying to get all the changes out of one into the local one.. then i should be able to diff back agianst it somehow and insert updated or inserted records based on time stamps....i hope 20:11
or i could quit and run like hell
dduncan is it feasable to take the live one down for awhile ... or make it read-only so others don't exasperate the problem? 20:12
eric256 no. and the live one is the master copy in case of fail we'll just have to try and manualy recover what got lost. ;)
dduncan do you use InnoDB tables? 20:13
eric256 generaly the local people edit completly different things than the remote so it shouldn't be too bad
getting them all synced completly will be hard though :)
dduncan well, the first step is to ensure the current problem doesn't compound as people continue to use the db 20:14
eric256 no local use so that wont be a problem. i hope. /me continues crieng and sorting out his id numbers. ;) 20:15
dduncan as long as you know the problem won't get worse, you should have some time to solve the problem properly 20:16
eric256 yea....slave is 403661 seconds behind.../me should probably check that on a daily basis 20:19
dduncan that's about 4-5 days, isn't it? 20:20
eric256 yep
eric256 begines to write automated script to check while waiting for the next conflict to show up
xerox is there a '++' list? 20:21
eric256 by that you would mean? 20:22
xerox a list of people being '++'-ed here, with relative score :D
eric256 karma xerox
jabbot eric256: xerox has karma of 1
xerox ah :D
Juerd karma juerd 20:23
jabbot Juerd: juerd has karma of 1
xerox karma pugs
jabbot xerox: pugs has karma of 7
Juerd woohoo
karma Juerd
jabbot Juerd: Juerd has karma of 1
Juerd When did it reset? :)
eric256 pugs++
pugs++ xx 1000000000000000
xerox karma karma
jabbot xerox: karma has neutral karma
Juerd eric256: That doesn't evaluate the LHS more than once.
eric256 :( 20:24
Juerd eric256: For that you'd need XX, which hasn't been fully accepted yet
eric256 pugs++ for 1...;
Juerd pugs += Inf
eric256 show off. ;)
?eval Inf
evalbot_7584 Inf
eric256 ?eval Inf + Inf 20:25
evalbot_7584 Inf
Juerd ?eval Inf - Inf
evalbot_7584 NaN
dduncan karma dduncan
jabbot dduncan: dduncan has neutral karma
eric256 wow. pugs does math with infinity
Juerd Now THAT is a tough question :)
eric256 ?eval Inf / 2
evalbot_7584 Inf
eric256 ohhh
lol
Juerd ?eval Inf * Inf
evalbot_7584 Inf
eric256 ?eval Inf + [+] 0..Inf
evalbot_7584 pugs: out of memory (requested 1048576 bytes)
xerox ?eval 0 / 0
evalbot_7584 Error: Illegal division by zero
Juerd ?eval Inf/0
evalbot_7584 Inf
Juerd Haha
eric256 what!? 20:26
dduncan shouldn't division by zero produce Inf?
xerox Goodnight lambdacamels!
eric256 or NaN ...but computers insist it is an error 20:27
dduncan though any N divided by itself should produce 1, regardless of whether that is zero
eric256 ?eval Inf * Inf + 1
evalbot_7584 Inf
eric256 just interesting to me...its an odd concep
dduncan unless there is some good reason not to, such as insurance against floats that appear to be the same but may not be due to rounding
?eval sqrt 4 20:28
evalbot_7584 2.0
dduncan eval sqrt -1
eric256 ?eval sqrt(Inf)
evalbot_7584 Inf
eric256 ?eval sqrt(-1)
evalbot_7584 NaN
dduncan eval sqrt(-1)
eric256 you forgot the ?
dduncan I thought Perl 6 had native support for imaginary numbers? 20:29
eric256 you probably just imagined that
eric256 is lives life -Opun
dduncan I was sure it was in the spec ... data types or something
mugwump there's an unboxed type for it 20:33
in S09
great for optimising to those architectures with built-in complex registers, presumably 20:34
but no Complex in S06#Types
wolverian haha 20:35
Juerd eh
Built-in complex registers?
eric256 yea i was pondering that one too
dduncan should be easy to create a Complex class and overide the operators ( i know thats not what you were asking...just fyi) 20:36
mugwump meanwhile that wart should be removed from S09 :)
dduncan yes, but one should be built-in
mugwump why, dduncan ?
dduncan just as large numbers are built in
Juerd dduncan: Why? They are not applicable to the real world. 20:37
eric256 complex numbers are only used in very specific cases though
Juerd I think having NaN and Inf is questionable too
Although Inf can be very useful, admittedly
dduncan because this is a widely used and very low basic thing that could stand best to be implemented at the low level
eric256 yea Inf could lead to some interesting responses, but it could be handy
Juerd Inf is mostly useful because Perl has lazy lists
eric256 "widely used" would be the phrase you wont get wide agrement on
dduncan complex numbers are used all the time in image, audio, and video processing
Juerd All the time? 20:38
I'm really good at avoiding running into them, then :)
eric256 and those wouldn't qualify as applications where perl jumps to mind anyway.
dduncan its a basis of lossy image compression, for example
its also a basis of cleaning noise out of images
eric256 imaginary numbers are?
Juerd eric256: complex
eric256 arg. complex...arn't complex and imaginary the same? 20:39
Juerd afaik, yes
dduncan they're used when converting data from a spacial-based plane to a frequency-based plane
mugwump interesting, still, I think it should be possible to prototype it with a module before they become automatically generated when you sqrt(-1)
dduncan well, being built-in doesn't mean they have to be used automatically ... there could be a 'use complex' pragma, for example 20:40
but the feature should be built-in
mugwump so build it, then someone can put it in :)
Juerd dduncan: What's the benefit of them being built in, rather than in a module? 20:41
mugwump Normally I guess that sqrt() would be : sub sqrt(Num where { $_ > 0 }) : Num
Juerd dduncan: Why shouldn't "use complex" just load a module instead?
mugwump `use complex' would export a sub sqrt(Num where { $_ < 0 }) returns Num
dduncan the pragma is simply to control how users want the computer to behave when they say things like sqrt(-1) ... if they didn't intend to use complex numbers, that would be an error
eric256 that didn't answer the "why" question 20:42
PerlJam IIRC, Larry sanctioned Complex numbers as part of perl6's "core"
dduncan complex numbers are used in heavy data processing, and would be best done in a low level optimized way 20:43
putting it in a module is too slow and complicated
mugwump I have just pinged P6l about this...
eric256 actualy dduncan thast not realy an absolute. modules could be c or some other language and be much faster (maybe not than core, but faster than a pure perl module) 20:44
integral why can't the pragma just have a standard interface, and it depend on implementations whether it uses a Complex PMC, or a perl6 impl?
Juerd dduncan: A module too can be as optimized, in Perl 6
dduncan either way, they are frequently used in some problem domains
and they are basic enough to warrant being built in
integral (built-in just means then that it's standard across impls)
Juerd dduncan: Don't forget that modules can alter grammar and access parrot directly
PerlJam Look under "Sized Type" in dev.perl.org/perl6/doc/design/syn/S09.html
er, Sized types
leo__ dduncan: Parrot has already a Complex PMC
Juerd dduncan: There is no direct relation between "module" and "pure perl" 20:45
dduncan then that's the kind of low level support I'm talking about
Juerd dduncan: And there is no direct relation between "pure perl" and "inefficient"
dduncan never mind that
integral dduncan: But why does this need to be built-in on all perl6 implementations? Why can't they each have their own complex.pm that uses impl-specific hooks to do it faster?
eric256 mugwump that pos is ....well short and to the point
dduncan my main point is that it is conceptually basic and very often used
one could ask the same question of why junctions are now built-in 20:46
eric256 feels many might regret builtin junctions too
dduncan but I don't have a problem with either 20:47
mugwump dduncan, because we're masochists. see autrijus' oscon video
eric256 i think junctions were too hard to do outside the core... while something easily done outside should probably be left there...all personal opinion though. i just think the bar to being builtin should be rather high not impossible but high.
i like modular perl and keeping perl lean (haha) okay leaner, as lean as can be? something like that. 20:48
mugwump builtin vs not builtin is pretty much a moot point, if Perl 6 is written in Perl 6.
PerlJam eric256: Quantum::Superpositions implements junctions just fine outside of the perl5 core ;-)
integral Why does the spec need to dictate the implementation? Surely it should just say "it should look like junctions are builtin, and the complex pragma should make sqrt work, provide a Complex type, etc"
eric256 PerlJam ... for some definitions of just fine. sure
Juerd dduncan: Junctions are for $foo == 1|3|5|7|9 20:49
dduncan: :)
dduncan: They're there to enable us to make the gap between how we think and what we write in code much smaller
PerlJam Juerd: not to mention give us new things to think about ;) 20:50
eric256 integral ..... when i hear "should be core" i think "should be in the main perl implementation that is compiled to an executable." versus a module "that is tacked on extra and not specified as part of the actual language, but rather an optional addition to it"
Juerd Humans don't think in complex numbers, though.
integral eric256: ok, and why can't that include pure-perl modules?
Juerd Except for some idiot savans
savants
eric256 integral...you lost me somewhere. i'm not agianst pure perl modules at all. or excluding them. 20:51
Juerd Let's first define "core"
integral Sorry, I was just asking to be clear.
Juerd I suggest: "core" means built-in, no module needed (perhaps a pragma to enable the functionality, though)
eric256 or are you saying parts of the spec'ed language could be implemented in pure perl modules? that to is true. perhaps with the new and redfined perl the idea of core changes
Juerd and "standard" means distributed with perl
as a module 20:52
eric256 thats the definitions i was thinking. /me remembers agian why we need a wiki
integral I think anything should be implementable as a pure-module once grammars arrive, the prelude could bootstrap the whole syntax. I don't think the spec should exclude anything like this
geoffb Juerd: Someone had said something akin to "Standard across all implementations, such that the end programmer can assume it's just there" earlier. I like that
Juerd Perl itself will be almost pure perl. Why give "pure perl" any meaning?
dduncan regardless of implementation, I see complex numbers as something that should be part of the language spec
Juerd geoffb: That's standard
geoffb: At least in Perl 5 jargon (this is disputed and denied by some)
I see no reason to change this jargon 20:53
dduncan and I also think it is more efficient to implement them at the same low level as other numbers or strings
putter stevan: ping?
geoffb Juerd, OK, fair enough . . . then I argue that complex and Complex should be Standard.
putter hi all
Juerd dduncan: A module too can use parrot
dduncan sure
Juerd dduncan: That is low level.
geoffb dduncan, implementation doesn't matter. As long as the end programmer need not care.
Juerd dduncan: There no longer is an important distinction. Sub call overhead is negligible.
dduncan and so I said 'regardless of implementation'
geoffb I don't want to have to worry about whether my end users can get PDL to work. It should Just Be There 20:54
Juerd geoffb: To that I agree.
dduncan I agree
geoffb well, . . . good, then.
:-)
leo__ geoffb: I can hardly imagine a lower cased complex (in the sense of 'int', or 'float')
eric256 so, dduncan, you now aggree that it could be a standard module versus a core feature? 20:55
then you may as well start writing the module ;)
geoffb leo__, I thought the lowercased version just meant "unboxed & tightly packed if possible"?
leo__ yes, I know
geoffb leo__, um . . . then where is the imagination gap?
dduncan I think that complex numbers should be defined as part of the perl 6 language spec ... and my 'I agree' comment referred to the PDL comment
Juerd geoffb: It means "uses native data type", iirc 20:56
geoffb complex == 2 * float or 2 * double
leo__ 'int' and 'float' are native cpu as well as C types, complex isn't
eric256 dduncan ahh
dduncan I'm not a stickler for implementation ... if its part of the spec, then an optimal implementation should simply work out of that
geoffb Juerd, nodnod -- hence "unboxed". Or am I overloading "unboxed" too much?
eric256 why define it as part of the langauge if it can be part of a standard module? just seems like asking for extra trouble for no gain
leo__ unboxed is an implementation thingy 20:57
eric256 would be like sayins CGI needs to be part of the spec because it gets used lots....i dunno. i think i'm missing something
geoffb leo__, I'm not sure that distinction is true for other processors besides the CPU (I don't know that it's false, but with GPUs, PPUs, DSPs, etc, I'd not be surprised)
dduncan this is one of those things were people can argue about in-language vs module ... the most important thing is that one can use them syntactically like numbers ... I happen to fall on the side that prefers in-language
PerlJam eric256: lots of things will be "part of the language" but loaded in via a module. 20:58
leo__ I'm not aware of any native hw complex support, but it might exist inside some chip, yes
eric256 i just wanted to understand why...what benifit there is? it seems form larrys responce that he is implying agreement, not sure though. but what is the benefit?
geoffb leo__, and besides, C++ has a core packed Complex, yes? (Yes, I know, we're not doing C++ code, I meant for binding)
dduncan perl 6 has a number of things in the core that aren't native cpu supported ... such as strings of characters
geoffb geoffb, errr, Native Code calls, etc. 20:59
er, that was for leo
geoffb having to think too fast for being this tired
leo__ for me the difference is: needs memory management or not
two floats (or doubles) do need it
thereforre it needs a 'box'
PerlJam eric256: Think of Larry's response as inviting a patch :) 21:00
geoffb leo__, why is an array of complex not packable like an array of double?
And moreso, *desirable* to pack?
eric256 PerlJam: i would rather see complex numbers handled by some module rather than speced in the language. the specs are long enough and complex enough as is. simpler can be better.
dduncan I would say that Larry's response is that the docs have an error in them 21:01
PerlJam dduncan: right (thus inviting a patch)
leo__ well, we could of course provide a 'complex' register type too, then we had an unboxed complex
PerlJam This is a community rewrite after all
eric256 since perl6 lets you define operators and change grammar a module can do everything a builtin can, so i don't see the reason to add more to the spec.
geoffb eric256, support in the optimizer and NCI, for one
eric256 geoffb++ finaly some sort on answer that makes sense...thats all i was looking for. /me was too dense to come up with that while others probably assumed it 21:02
geoffb eric256, heh
PerlJam leo__: suggest that in ernest and see how far the hue and cry are heard :)
eric256 so implementing complex numbers in the core could let you store them without the implied overhead of objects and overloading caused by putting them in a module? something along those lines at least? 21:03
leo__ geoffb: arrays of 'native complex' are a totally different thing, that's rather simple
geoffb One of PDL's downfalls is that the wall between Perl 5 numbers and native numbers is very high. Moving data through that barrier is SLOW
eric256, nod 21:04
dduncan I agree with that PDL comment
geoffb eric256, but as others have pointed out, you can get much of the way with a module.
eric256, but experience with PDL reminds me that "much of the way" != "all of the way", at least in terms of performance
autrijus mugwump, dduncan: I commited a fix to S06. 21:05
geoffb Also, PDL having to wrap things up in a way that makes perl happy makes complex expressions slow as hell, too, because of temporary generation.
Of course, there's PDL::PP, but that is just a giant hack to get around the above mentioned fact. 21:06
PerlJam geoffb: define "complex expressions"
dduncan autrijus, to what copy of it?
geoffb And I don't want to have to do that in Perl 6. Really, REALLY hoping to avoid it, actually.
autrijus dduncan: master copy
PerlJam Because I think you mean "slow as hell" relative to what it could be in C (or fortran or whatever), not "slow as hell" as compared with how slow it would be if you did it in perl.
dduncan url? ... its not in pugs svn yet
autrijus svn.perl.org/perl6/doc/trunk/design/syn/S06.pod
geoffb PerlJam, sorry for overloaded "complex". I mean, lots of operations. A * B + (C * D) / (E ^ F) ... 21:07
dduncan oh wait
geoffb PerlJam, actually, if you're not careful, it's easier to be *slower* in PDL than pure Perl.
dduncan never mind the with-pugs comment
PerlJam geoffb: Really? I've never done it.
geoffb PDL is often thought of as fast, because the canonical PDL use is processing astro images.
PerlJam, sadly, I have. Over and over. Bleah. 21:08
leo__ geoffb: another idea: instead of extra storage, a complex could overlap to 'N' registers - with a little help of the register allocator, but there is some literature about that
PerlJam leo__: 32 N regs == 16 C regs? 21:09
leo__ s/to 'N'/two 'N'/
forget 32
but yes
geoffb leo__, I think having complex == 2 * N is perfect. If the alligator didn't mind, even forcing it to starting at an even register num or something wouldn't be horrid, though I'm guessing parrot doesn't even care
theorbtwo I've used PDL in two cases, and on one I threw it out because of obnixious syntax.
I'm wondering if I shouldn't throw it out in the other because it's too damn slow.
geoffb theorbtwo, it really depends on exactly what you're doing. 21:10
I've had to spend a hefty number of cycles learning it's performance gotchas.
theorbtwo geoffb, in the first case, I was doing some fairly simple 3d graphics.
geoffb When used well, it can cook along. Used badly (which is not hard), *ouch*
PerlJam I wonder how you'd do the equivalent of PDL's where() in perl6 21:11
geoffb theorbtwo, ditto. :-)
theorbtwo In the second case, I'm doing some odd tings best left undescribed, other then to say that I'm dealing with 1 x lots vectors, that are very sparse.
And, even worse, that I really want to be able to add more to the end of on the fly, which AFAICT can't be done with PDL. 21:12
geoffb theorbtwo, yeah, that case 2 sounds really suboptimal for PDL. It likes huge packed arrays
theorbtwo, there is some ability to resize. I've not spent a huge amount of time on it.
PerlJam Doesn't PDL have an optimization for sparse matrices? or am I imagining it?
theorbtwo I think I may be getting rid of the whole thing, if I can colabarate with the mightv trio from london.pm. 21:13
geoffb In any case, this all comes down to: I've gotten bloodied from PDL. I want Perl 6 not to suck for numerical work. I think $Larry and parrot were headed that way with native types, but more is needed, and complex is part of that
PerlJam, if so, it's happened since last I investigated (admittedly some time ago) 21:14
theorbtwo Is complex worth supporting as something other then a 1 x 2 matrix?
geoffb PerlJam, er, I'm assuming you didn't mean "It's possible with some PDL::PP indirection code", which IMHO doesn't count
PerlJam geoffb: well, I can't find anything in the docs, so I'm chalking it up to my imagination.
eric256 what does iblechbot do? 21:15
i forgot agian.
theorbtwo Hm, wouldn't a PDL equiv be OK ... eric256, logs ... if complex ops could be optimized to be completely in PDL if type-inferencing could figure out that they were doable all in the PDL layer? 21:16
geoffb theorbtwo, I think so, for various reasons: ease of programmer understanding, support from builtin operators and functions, optimizer pass support, etc.
eric256 don't we already have a bot logging everything to irc.pugscode.org? 21:17
geoffb theorbtwo, possible . . . but then all math optimization code in the main interpreter would have to be duplicated in PDL
eric256, I'm not sure why, but iblech keeps his own, which he has agreed *not* to share 21:18
theorbtwo Hm, also in many cases "die" is what the programmer expects if they accidentally write sqrt(-1)?
dduncan a pragma should fix that
theorbtwo Yeah.
geoffb theorbtwo, what dduncan said
dduncan user can choose when they want die or complex
geoffb In general as I said, I don't care about the implementation so much. What I care is that it not suck for the end programmer. I may be limited in my imagination, but my PDL experience is screaming that that implementation choice should not be repeated. 21:19
(for the specific case of numeric computation in Perl 6)
dduncan yes, geoffb
theorbtwo I think PDL could be a lot less bad if it tried and if there were better mechinisims for it to do so. 21:20
dduncan numbers should just be natural to use, regardless of how they're implemented in back end
theorbtwo For example, normal array access syntax not working is EVIL.
PerlJam theorbtwo, geoffb: have you used recent version of PDL?
geoffb theorbtwo, PDL is so bloody complex to work around so much stuff, that I think people (me included) have a hard time understanding how to fix it
theorbtwo I'd rather concentrate on giving a PDL replacement the hooks it needs to be good then on putting everything in core. 21:21
geoffb PerlJam, it's been about a season since I last used it, and then I was using whatever was in debian sarge
dduncan the reason PDL exists in the first place is because Perl itself didn't have good compact number storage etc
theorbtwo I'd like to be able to announce that we have reached 1.0 without first reimplementing all of CPAN.
dduncan if the core language does, then PDL and its funky workaround syntax isn't needed
theorbtwo I have used a recent version of PDL recently, but haven't seen good documentation on it.
geoffb theorbtwo, fair enough.
theorbtwo, good docs for PDL? mwa-ha-ha-haaa 21:22
(Don't get me wrong, the PDL guys clearly tried -- they just assumed way too much of their own knowledge.)
stevan putter: pong 21:24
theorbtwo That seems to be a /very/ common failing in documentation.
eric256 "putter pong" sounds like some sort of ping pong variation for old people
geoffb theorbtwo, nodnod. I personally think it comes from not having spent time teaching raw beginners.
eric256, *snort* 21:25
Good thing I wasn't drinking something just then
theorbtwo Sounds like pong for golf players.
geoffb It would have been all over the screen
OK, I'm about 2 hours late for lunch. I think I'll pause for a bit. 21:26
&
dduncan good lunch 21:27
eric256 's slave database is now only 298331 seconnds behind...
dduncan oh, you're catching UP! 21:28
eric256 smacks his forhead for letting this happen. First month i checked it like 5 times a day, then i got complacent and look what happends
dduncan a few hours left, I imagine
eric256 yea there is a major update to teh "main" database every night at midnight, now i have to set through all those in one shot. lol
dduncan a typical human fallacy ...certain bad things rarely happen, so one starts to assume they never do and stop looking 21:29
a paraphrase of a lead in to the error checking chapter in PBP
eric256 i also assumed someone would notice the numbers where off. ;)
i should get some X10 in here and setup green and red lights. lol bright red light comes on when they get more than 60seconds out of sync. ;) 21:30
dduncan is this a slave/master deal, or can some writes go directly to either one first?
like a cluster 21:31
eric256 some writes go directly to the local slave and then are replicated to the master. those updates are going to be the hard ones to recover. but first things first
dduncan I thought the definition of slave was that all writes to it are copies of the master, so the master is always updated first
slaves are only read from directly
nomeata (and now my IRC bouncer just disconnected me. Did I get any answers so far?) 21:33
eric256 then call them masterA and masterB 21:34
with MasterA being the live Master being accessed by the website and *everyone else* and MasterB being a local copy to speed access which was abismal otherwise
if i could some how setup MySQL server localy to send edits to the other server directly that would rock. but i don't know of any way to do that 21:35
since i use Access for the front end i would have to link 1 table for reading, then a copy of it linked to the other server for writing...
dduncan eric256, look up MySQL's newer "clustering" features, which I think does two-way whatsits 21:36
different than "replication", which is what the master/slave thing describes 21:37
note that I've never used either, just read about them 21:38
eric256 clustering requires large amounts of memory though 21:41
dduncan maybe you don't need it though ...
eric256 like 10 times as much memory as the size of your DB...read about it when i was setting this up
dduncan how often do you do local updates?
eric256 often, but mostly to different parts than the masterA is updating 21:42
dduncan maybe you can put up with slower updates, that go straight to the remote db and then replicate back to your local slave for fast reads
eric256 thats what i was jsut saying, except its like impossible to setup
i wouldn't mind slow rights at all
dduncan why?
I would think that would be easy to set up
eric256 not with an MS Access front end. 21:43
dduncan if the 2 dbs are setup according to mysql's definition of "replication", with the remote being the master and the local the slave, ...
eric256 no way i know to have the local server redirect all writes to the remote
dduncan then you have one connection to the master to do all writes, and and a separate one to the slave for read-only actions
you connect to the remote directly 21:44
when doing changes
as if the local didn't exist
eric256 yes i understand all that. the problem is there is no easy way to do that with MS Access as the front end 21:45
i would have to link to both DB's and have seperate forms for view and editing, which would just be annoying and a pain to maintain.
dduncan this single writer and many reader concept has been in mysql since the 3.23.x series and is mature
eric256 i don't think you are paying attention 21:46
its not a defecit in mysql
its a missing feature ni Access...no way to redirect write't to a different DB than you are reading from
dduncan how much trouble is it to make new front-end tools
do you *need* to use Access?
eric256 lots of trouble. ;) lots. it is an accounting tool built very specificaly for our accountants and an inventory tool built to track orders/supplies and inventories. moving them from access would be possible but very *VERY* difficult and would end up with an application that wouldn't be as friendly to use 21:47
dduncan if you had a good front-end toolkit with even a minimal bit of indirection built-in, all writes could automatically go to one connection, and reads from another
and anyone using the toolkit, to them it would look like just one connection 21:48
eric256 if i did. but i don't, and wont get the time anytime soon for a conversion. though i've wanted to get away from access for a while. we'll get there, just not in the next 12 months
dduncan maybe you could employ or use some migration or abstraction tool, so your code that expects to talk to access would talk to that instead without being rewritten 21:49
so then cut access out without great pains of a rewrite
eric256 the code is IN access. and i've looked but never found a tool that can migrate an entire Access based application, let alone several dependent ones 21:50
dduncan or if you can't cut out Access ...
you could have a tool intercept the communication between Access and MySQL
the tool would then make two MySQL connections look like the one that Access expects to see 21:51
eric256 it would just be a ncie feature if MySQL provided the ability to write to a different database than you are reading from, although i can't say i'm surprised such an option is missing
yes that would definitly be an option
dduncan said tool would be a 'proxy' of sorts
that's probably the simplest solution, given your current situation 21:52
aside from MySQL having said feature built-in
geoffb Actually, I used to work somewhere that had built that sort of proxy for MySQL . . . unfortunately, I wasn't involved in that implementation . . .
eric256 yea a proxy of some sort would be cool
geoffb ;(
getting my hopes up like that was just cruel 21:53
lol
dduncan I'm sure others exist ... probably several FOSS ones
eric256 i wonder if there is just a generic odbc proxy like that?
geoffb eric256, sorry man. I was just saying "It has been done, there is hope."
eric256 FOSS?
geoffb DBD::Proxy?
eric256 lol geoffb i know.
dduncan Free and Open Source Software, eric256
eric256 ahh 21:54
geoffb DBI has builtin proxying, I've never used that either though.
Sorry, eric256, I'm not really intending to torture you . . . .
dduncan geoffb, I'm thinking something similar to DBD::Proxy, but I don't imagine said Access code is written In Perl
geoffb dduncan, yeah, but it has got to be reasonable to make a Perl server that looks like a MySQL DB. 21:55
I can't believe I just said that.
sheesh
dduncan sure you could do that
geoffb OK, back to working on food.
dduncan assuming they're talking by either TPC/IP or IPC, it should be possible to interject a Perl process to do the work 21:56
I mean TCP/IP
IPC is only relevant if the Access and MySQL are on the same machine
theorbtwo TCP/IP or unix domain socket, I think. 21:57
putter &
dduncan I see unix domain socket as being a type of IPC
eric256 they are never on the same server so sockets/IPC arn't trouble
theorbtwo Really, you can pick your choice of anything that you can find an ODBC driver for. 21:59
eric256 theorbtwo: what?
theorbtwo If mysql has an easy protocol, emulate mysql. 22:00
If pg has an easier protocol, then emulate pg's protocol instead.
eric256 ahh i see what your saying 22:01
i was looking for an existing implementation, can't beleive i'm the first to have this problem, as geoffb confirmed
dduncan basically, you just need to emulate some protocol that Access knows how to invoke
eric256 i just need to emulate an ODBC driver, where the options let you choose an ODBC connection for reading, and one for righting. 22:03
unfortunatly i don't know how to do that...yet ;)
dduncan however, once you figure it out, it is probably less work than rewriting your Access programs 22:05
theorbtwo I expect it's easier to emulate a mysql server then it is to write an ODBC driver. 22:06
dduncan I would expect so
theorbtwo But possibly I just say this because my perl is far better then my C.
dduncan ODBC is designed to handle a whole bunch of features that MySQL doesn't have, and is necessarily more complex
eric256 hehe true. i hadn't thought of that aspect. thats where you were going with the pg and mysql example
Juerd wolverian: I've installed fetchmail on feather 22:09
wolverian Juerd, thankyou! 22:10
Juerd++
Juerd wolverian: Whenever you need debian packages installed, all you have to do is ask :)
wolverian: It's a oneliner to do these things: apt-get install fetchmail 22:11
theorbtwo debian++ 22:12
wolverian Juerd, I know, that's why I only run debian and ubuntu nowadays :)
Juerd Are you familiar with debian, wolverian?
I take that as a yes
Then I don't have to tell you about apt-cache
wolverian Juerd, for searching?
Juerd Yes
theorbtwo Also packages.debian.org++ when you want to search by filename. 22:13
Juerd I wonder why you are 1007 in the output of ps
instead of your login name
theorbtwo (perl regular expressions)++
eric256 panicks slightly as his slave starts to loose ground on the master....no!!!
Juerd eric256: ?! 22:14
eric256 214844 seconds and climbing. ;(
no errors. just doesn't feel like updating...i dunno. madness
Juerd ?
Have you been drinking?
eric256 nope...should be though, might calm me down 22:15
theorbtwo Or letting your slave hold the whip when you want a free hand...
Juerd Given a slave, what would you need a free hand for? 22:16
wolverian hmm, why is mutt opening the spoolfile now instead of ~Maildir 22:20
er, ~/
Juerd, I just set up my home system to do the fetchmail thing - I'll see how stable it is. it'd certainly be nicer to do it on feather to save one ssh session :) 22:21
oh, hm. it's not reading the configuration file at all.
eric256 hmmm maybe its a bandwidth issue...could be someone else downloading crap and slowing it down... ;( /me crosses fingers 22:23
wolverian this is really broken 22:25
Juerd wolverian: mutt opens $MAIL or whatever you gave on the command line 22:27
wolverian oh. I thought it opens 'folder' in .muttrc 22:29
thanks.
Juerd many programs use $MAIL
it's important to have such things set up correctly.
wolverian right. 22:30
does the trailing / have a meaning there?
Juerd It tells some clients that haven't invented -d yet that it is a maildir, not an mbox 22:31
procmail needs this, iirc
wolverian thanks again
augh. I ran formail -s procmail on the spoolfile, but forgot to tell procmail where to put things by default! 22:32
GHLAUGHAGUEGAgg that's a big /var/mail/wolverian
Juerd You did backup things before you started playing, I hope 22:33
wolverian of course not!
Juerd Stupid.
wolverian now I just need to trim the duplicates..
yes.
eric256 lol. Juerd++ for such encouraging behavior lol 22:34
wolverian he's right, though. :)
be glad I'm not your BOFH.
Juerd eric256: At least I am sincere
eric256 hehe. "why are you offened? I sincerely mean your an idiot." ;) 22:35
eric256 is dealing with his own trouble cuased by being stupid so he can sympathize with wolverian ;)
Juerd I was judging the action (or actually, lack thereof), not the person :)
eric256 or empathyze...can't remember which (or spell either) 22:36
wolverian oh, damn, I forgot the envelope thing
Juerd I hate envelopes that you have to lick
wolverian (it is not very smart to forget your server's hard drive somewhere)
Juerd It gives me goose bumps
wolverian (I have no idea where I left it)
eric256 paper cuts on the tongue--
karma tongue
jabbot eric256: tongue has neutral karma
eric256 can't say i didn't try 22:37
Juerd wolverian: Why has it left the server with critical data on it? :)
wolverian Juerd, I relocated from my apartment
Juerd Oh, home server
wolverian yes.
(so, no worries.)
Juerd I'm not used to such things 22:38
wolverian I'm just a poor student.
Juerd I no longer have any servers at home
Just workstations
One headless, that I connect to using ssh
theorbtwo formail has a nice easy "trim dupes" mode.
wolverian theorbtwo, yeah, found it. thanks :)
well, I'd run things on my university server(s), but they either run weird FC versions that don't have UTF-enabled shells or SunOS. 22:39
Juerd non-linux sucks :)
wolverian not that the former really means that much, but those servers don't have mutt either.
Juerd, yes.
Juerd (Uh oh, I'm making enemies again...)
wolverian okay, I think I lost that mail somewhere
oh. SMTP server timed out 22:40
Juerd They never time in
wolverian where the hell did it even get that address 22:41
Juerd Are you sure it's yours?
wolverian yes. 22:43
(it's not supposed to be)
(well, "mine" as in I don't own or operate it.)
here's why this set up sucks: I can't use a mail indicator in irssi 22:44
(since it's running on feather)
Juerd ssh. 22:45
You can do it, but you're too lazy to make it happen
eric256 "mine" as in I don't own or operate it .... that is an interesting definition of "mine" lol 22:46
wolverian eric256, I meant "not mine" ;)
Juerd eric256: I have lots of that stuff
wolverian Juerd, I'd have to recode the mail indicator script. yes, I'm a bit lazy.
eric256 watchs juerd swing and connect with wolverian's jaw, Juerd isn't pully any punches today. lol
wolverian now, why is this SMTP relay timing out.
Juerd wolverian: That's more like it 22:47
wolverian: Eitheir it is somehow broken, or it hates you.
s/heir/her/
eric256 pulling*...../me needs an irc client that spell checks as he types
Juerd eric256: Won't help. Pully is a real word.
theorbtwo eric256, gaim+gspell. 22:48
eric256 spelling intention checker? "did you realy intend to say that?" lol
Juerd There's no way to completely evade having to think.
wolverian it isn't helping that it doesn't give a real error message
eric256 Juerd....but i can try!
Juerd eric256: Merge Clippy into your irc client.
eric256: When you do so, please do leave this channel :)
wolverian: That's typical for time outs 22:49
theorbtwo ponders hooking up a whatsit chain, and hit space-bar on occasion to make it say something different.
eric256 markov chain? 22:50
wolverian oh, goddamn
theorbtwo Markov, thanks.
wolverian I hope the ISP isn't blocking me >:|
erm. that doesn't make sense, though. 22:51
oh, here we go.
should have read the IT dep's FAQ :)
Juerd Note that markov chains are not related to Mark Overmeer
theorbtwo: Hm 22:52
wolverian (they require TLS and login/pass from outside the university network)
Juerd theorbtwo: interesting.
wolverian: Then it is not broken and the other option remains.
wolverian Juerd, PEBCAK 22:53
Juerd wanders off to bed
bye
wolverian good night
theorbtwo G'night. 22:54
eric256 later 23:02
eric256 is under a 187k seconds behind now...time to go sleep. ;)
23:23 sleepster is now known as typester