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
|