6.2.5 released! | Your opinions wanted: perlmonks.org/?node_id=459750 | pugscode.org <Overview Journal Logs> | pugs.kwiki.org
Set by autrijus on 23 May 2005.
Darren_Duncan I am in the middle of 'make test' for 6.2.5 now ... 00:09
mugwump where's a test/demo of coro's, anyone? 00:11
ah, t/unspecced/coro.t
svnbot6 r3805, autrijus++ | * fix typo 00:50
r3806, revdiablo++ | updated version number in debian build files
r3807, mugwump++ | Playing with coroutines and iterators - Tree test now fails gracefully. New open question about using yield() within closures.
japhy I've found a typo in the pattern matching apoc. (#5) 01:44
[[:alpha:][:digit:] <<alpha><digit>> # POSIX classes are built-in rules
the first thing is missing a closing ], but I'm more concerned with the Perl 6 equiv.
it seems to be saying that < <alpha> <digit> > is some sort of assertion that matches like [[:alpha:][:digit:]] does in Perl 5 01:45
now, character classes in Perl 6 seem to be defined as <[...]> 01:46
so how does one intersperse built-in rules with range-based character classes? 01:47
would it be < <alpha> [0-9] > ?
or is there a typo in the original? should it be <[<alpha><digit>]>
Darren_Duncan the result of 'make test' on 6.2.5 is: 297 subtests skipped, Failed 1/297 test scripts, 99.66% okay. 9/5661 subtests failed, 99.84% okay. 01:50
japhy hrm, perhaps page 12 clears that up abit
Darren_Duncan failed one is: t/oo/class/nested_use.t 9 9 100.00% 1-9
this is on Mac OS X 10.3.9, system Perl 5.8.1, no Parrot etc, all default config 01:51
leaving comp now
theorbtwo Ah! Finally! 02:08
freenode wasn't letting me reconnect for the longest time...
diotalevi Hola, mugwump. 02:14
theorbtwo Hola to you too, dio. 02:15
diotalevi So can I write my perl in Haskell now? Or can a perl function call a haskell function? Or the reverse? 02:19
Without just doing eval-string or the equivalent. 02:20
(actually, I really want to write my perl in lisp, I'm just asking about the Haskell part because it seems more likely) 02:21
theorbtwo Well, you can eval haskell strings from perl.
(If you want to get back a string.)
This is probably not what you were really asking, but I'm not sure what you /were/ really asking.
diotalevi Yeah... but just eval-string isn't terribly interesting, you know? 02:22
theorbtwo It's not?
You can do anything with eval string.
diotalevi It depends on when it runs and it depends on whether it interpolates the result into the surrounding code or whether it just runs the resulting code. 02:23
theorbtwo I feel like I'm being stupid. 02:24
mugwump You could add that to autrijus' new wishlist Perlmonks node. You're basically looking for the perl6 Inline:: equivalent, which is supposed to be a "core" feature
iirc
theorbtwo Oh, you're looking for Inline::Haskell? Um, I think I may have written that, but I can't quite recall. 02:25
mugwump you want definitions in the eval string to be available to the Perl, for instance. Inline:: does this the other way (Perl 5 to Perl 6), but I don't think the reverse is true
diotalevi I want macros.
That's what I'm really after.
theorbtwo Oh.
You should have asked for them, then. :)
mugwump oh. Perhaps I'll stop second guessing you then :)
diotalevi If macros can be written in multiple languages, so much the better.
theorbtwo Um, planned, but there are still significant bits of them that the design team hasn't given us /any/ clue. 02:26
That is, when they are called, and what arguments they get.
diotalevi Well... macros are a more limited form of what I'm really asking for. It doesn't sound like it exists yet anyway.
theorbtwo Ah. 02:27
You want the ability to just write Haskell, and have it figure out what you mean?
Try fp.pm, which is something along the same basic idea.
We don't have macros, but we /do/ have user-defined operators.
diotalevi is distracted by mom on the phone. 02:28
theorbtwo ponders --> as an equiv for ==> -> 02:32
...which I think would serve well as a substitute for Haskell's ->.
...possibly.
diotalevi hasn't even gotten GHC ported to the machine he wanted to use perl6 on yet. 02:33
Ok, consider this in perl5 terms. As soon as BEGIN is compiled, it is imediately executed. If BEGIN were able to *not* execute but instead just return a fragment of an optree, that would be what I'm talking about. 02:35
I'm pretty sure this is a sane idea in perl6 terms but don't know how to say it yet. 02:37
theorbtwo What you really want to be able to do is take a Code object and do lots of introspection on it, I think.
You also want macros, in the LISP and perl 6 sense. 02:38
diotalevi Well, introspection, yes. I will always want infinite introspection.
Odin-LAP He's describing lispian macros. 02:39
Which, A6 promised us, we should have.
... sooner or later.
diotalevi Well... lispian except I don't really care if they have names most of the time.
Odin-LAP diotalevi: They're on the same level as subroutines and methods and such. Dunno about anonymous ones... 02:40
diotalevi If I had to *name* every macro... ech. 02:41
Why did we have to move this to IRC anyway? Perlmonks was just fine. 02:50
theorbtwo try { sleep 60**2; CATCH ('z') {redo} }
Oh, you should reply to that wishlist post with "macros". 02:51
vcv Perl6 needs atomic transactions
diotalevi Wishlist post? 02:52
Color me clueless.
mrborisguy if only i had that color in my box...
nope, just the classic 8 color set. 02:53
don't really care if they have names most of the time. 02:56
<Odin-LAP> diotalevi: They're on the same level as subroutines and methods and such. Dunno about anonymous ones...
woah... sorry about that, just playing with the mouse
svnbot6 r3808, ninereasons++ | make more defaulty defaults 03:23
japhy which perl6 mailing list is the most useful to be on? perl6-language? 03:54
svnbot6 r3809, Stevan++ | Perl::MetaModel - more clarification on docs/perl6_meta_meta_class_hierarchy.pod 03:55
japhy this is probably a weird question.
mugwump perl6-language has the most posts from all(@Larry) 03:57
but I'm not on *all* of them :)
japhy I'm most interested in posting and debating questions about pattern matching syntax and purpose
mugwump pge? 03:58
oh, rules syntax itself
japhy what's pge? 03:59
revdiablo the rules engine written for parrot, in PIR
japhy oh, right. 04:00
memory lapse. I have that bookmarked.
mugwump "The most merciful thing in the world ... is the inability of the human mind to correlate all its contents." -- H P Lovecraft
japhy basically, I need people to ask about specific syntax and purpose issues. to find out what's changed or what's fuzzy since the apoc. #5
revdiablo p6l would be the place, I think 04:01
mugwump write tests! :)
japhy I'm writing a Perl 6 rules parser in Perl 5 right now
tests come later, once I've got Perl 6 on a machine of mine.
mugwump Juerd might give you a login on his
japhy yeah, I heard about that
mugwump IMHO, writing a Perl 5 rules engine without co-ordinating it with PGE development would be a bad idea 04:02
japhy mug - my model for the regex parser is probably considerably different from PGE 04:03
mugwump sure, implementation might be radically different. but you'd want the test suites to be shared 04:04
in fact you could probably use Inline::Pugs for this now
but then I probably don't know enough about the intricacies of rules to comment fully on this. not really my area. consider my input given :) 04:05
japhy the extent of the work I'm doing right now is simply this: 04:06
my $parser = Perl6::Rule::Parser->new;
$parser->parse($string_representing_perl6_regex);
and then you can access a data structure representing the regex.
how it's used by other developers is up to them. 04:07
revdiablo you might also want to look at Perl6::Rules, if you haven't already
japhy I have
it's incomplete, though, because it's a translater
revdiablo oh, it just translates to p5re?
japhy it doesn't create a parse tree. that's what mine is for.
the next step would be writing an expansion to P6::Rule::Parser that parses the *context* of the rules as well 04:09
that is, the m:whatever/ ... / part
this module just parses the ... part.
anyway, good night.
revdiablo night japhy 04:10
mugwump 'night
masak morning 04:55
masak svn ups
did you release two consequtive versions of pugs within the same half hour? 05:30
you guys are nuts :P
pugsteam++
mugwump yes, this is because some idiot broke a test just before a release 05:31
mugwump trolls perlmonks.org/?node_id=459750 05:44
masak mugwump++ # as consolation 05:50
mugwump thanks, masak :) 06:04
revdiablo mugwump++ # for saying what I was thinking 06:05
mugwump I hate FUD, and BrowserUk's post was full of it 06:08
06:43 castaway_ is now known as castaway
gaal can i call p6 from haskell? 07:01
mugwump nopaste.snit.ch:8002/2691 # A fuller, more constructive post, anyone care to review? 07:02
revdiablo perhaps?
castaway Its certainly an improvement on the thing you posted. 07:07
castaway reads the rest
to part 1) I would answer there that cleanup and document comes after preliminary implementation is done.. (IMO anyway..) 07:08
castaway has no idea what B*UK means about the "existing implementations of the underpinnings" .. 07:10
mugwump yes, absolutely. I was taking the angle that the primary implementation of the *specifications* is complete, and that pugs is the cleanup and documentation process for those specifications
s/primary/preliminary/ 07:11
he's referring to parrot, given the previous point. I don't know which spec he's referring to, it might exist. I know Leo has a huge amount of experience, possibly even with other VMs. But in any case it's about something in the past
castaway I read that first to mean he doesnt want to use it until its done being defined.. which makes some sense, its just not worded very.. politely 07:12
You might want to stress somehow that Pugs (implementation of P6 syntax) is NOT parrot (generic bytecode thingy)
mugwump ok good idea 07:13
castaway ie that Pugs runs completely independently from parrot
maybe he is confused on that point
(several people seem to have the idea that P6 == Parrot=
s/t=/t)/ 07:14
the runtime library/virtualisation thing also seems to refer to parrot 07:15
as for bypassing tests that wont work/make no sense on some platforms, I feel thats a good thing to do, as long as the bits that wont work are documented.. 07:16
for eg, if p& gets used as an embedded language (or something) theres bits of it that are just not going to work or be needed
oops p6
Ok, I'm done reading now, hope it was helpful
hmm, I thought I posted a reply to that node this morning 07:18
mugwump very, thanks :)
castaway++
castaway oops, no that was the other one 07:19
castaway blushes
you're welcome
drbean Does the comment about parrot delivering the semantics in real time 07:28
mean that he wants parrot to be finished soon? What does it mean? 07:29
castaway who knows :)
I suspect that he thinks parrot runs slowly
mugwump www.perlmonks.org/index.pl?node_id=459834 # :) 07:31
integral well mandel.p6 was slower than perl5 last I checked (with parrot) (because we're using PMC for everything) 07:32
drbean Who is he referring to when he says those speccing Parrot should have
mugwump I thought I saw it running on autrijus' laptop a factor of 10 times faster than the Perl 5 version via Parrot in hualien 07:33
drbean used previous implementations before speccing.
mugwump I'm not sure, drbean :)
integral mugwump: yeah, it was running very fast earlier
mugwump yay, that made me level up to abbot :) 07:37
gaal Juerd about?
mugwump where can I go to spend my XP on more character skills? 07:38
castaway ,) 07:42
grats, mugwump!
nothingmuch morning 07:44
mugwump hi nothingmuch
integral ah, maybeColon is for matching the : in private members? 07:49
svnbot6 r3810, bsmith++ | Moved mergeStmts and isEmptyParams from Pugs.Parser to Pugs.AST.
castaway allo nothingmuch 07:50
nothingmuch hi ho castaway
integral hmm, you can't say: class { sub :my_private_sub { ... } } 07:54
nothingmuch Juerd: nothingmuch, [email@hidden.address] Yuval Kogman 08:10
i'll set up a smoke loop
wolverian mugwump: nice re: perl6 wishlist on perlmonks :) 08:25
nothingmuch wolverian: link? 08:31
wolverian nothingmuch: www.perlmonks.org/index.pl?node_id=459834 08:32
Aankhen`` mugwump == mugwumpjism on PerlMonks? 08:36
wolverian I don't know, I just assumed! 08:37
Aankhen`` Oh, heh, I just noticed you were talking about that too.
mugwump++ # excellent reply. =) 08:38
castaway yeah that was him, we were discussing it earlier
Aankhen`` Darnit, I'm not getting a dual-core processor after all. 08:39
I'm just getting a 64-bit P4.
afdf who is in taiwan? 08:40
Aankhen`` Ah well, it's lightyears ahead of my Athlon 1.63 GHz. anyway. :-D
09:09 spinclad is now known as spinclad_
Juerd gaal: pong 09:12
09:12 spinclad_ is now known as spinclad 09:19 wilx` is now known as wilx 09:21 f0rth_ is now known as f0rth
lumi Hi 09:26
Juerd Hello 09:27
webmind morning
spinclad Hi, all 09:28
Aankhen`` Hi.
Juerd perlmonks-- # slow again 09:29
nothingmuch aix's make is soooo flakey 09:30
lumi Was I imagining that $string.chars would give me the chars?
Juerd lumi: Those methods are all rather confusing
lumi Yes
Juerd lumi: @array.elems gives the *number of* elements
lumi: $string.chars gives the *number of* characters
lumi Although I can see how it's stupid to have .elems return the elems
Juerd lumi: $string.split('') gives the individual characters 09:31
lumi: I can't.
lumi Don't arrays numify correctly though?
Juerd lumi: Yes, they do.
And so could .elems
lumi So...
Yes
Juerd And so could .chars
So I'm all for having these return smarter things than just numbers.
lumi It really makes sense to me to iterate over $string.chars
Juerd To me too. 09:32
And if someone wants the number, +$string.chars
lumi And still no need of the L-word
Juerd l? 09:33
lumi Length
nothingmuch moy hed is hoirting, oi oi oi 09:40
mauke Juerd: do you know why tnx.nl doesn't load here? 09:42
Juerd It'll have something to do with the server's 0.04 load 09:45
Investigating...
I killed apache and restarted it. Works now.
Thanks for letting me know.
mauke yay, thanks 09:46
integral mutters about his mails not reaching p6c/p6l 10:05
ah ha. Using perl6-language.perl.org does not work ;-) 10:12
Juerd H. Merijn Brand sent his replies to [email@hidden.address] and only yesterday discovered that none of those messages ever arrived :) 10:14
They don't bounce :)
integral heh. I never check my inbox on that account, just all the ML folders, so I'm always missing bounces :-) 10:16
nothingmuch wonders how cool a lazy DBI would be in perl 6 10:35
instead of calling weird bindparams, etc 10:36
but fetched as needed
everything will be inverted
blobs will be filehandles or strings, depending on how they are handled
the entire set is symbolically returned at once
in chunks set as a param to DBI
Juerd nothingmuch: I made something like that once 10:37
nothingmuch: But Perl's tieing made syntax awkward
nothingmuch right, p5 can do this stuff
but it's awkward
in perl6 it will be clean and natural
Juerd It's useful to know that foreach (ARRAY) is different from foreach (LIST)
nothingmuch in p5 you mean? 10:38
Juerd Yes
castaway Tie::DBI++ (or is it DBI::Tie, I can never remember)
nothingmuch that's good to know
Juerd foreach (ARRAY) does not flatten before it starts looping
nothingmuch Tie::DBI *is* pretty cool
castaway I should send in the db2 patch.. naughty me
Juerd So if ARRAY is tied, it fetches values as they are needed 10:39
nothingmuch The pure-specifier (= 0) is not valid for the non-virtual function "LoadedFunctions::getSharedLibraryName".... *sigh*
this is my most painful learning experience ever
i know all the abstract and concepts 10:40
but getting the details right is such a slow iterative process
Juerd What are you doing then?
nothingmuch this is the base class for dynamically loaded classes in our C++ thingy
we are binding to some other companies dynamic libs
i'm fixing the installer so that it installs the dynamic lib 10:41
and then loads it
so that the API to the other product is more consistent than it is now (uses a CLI tool and parses it's output... eek!)
the problem is that the API we're using is split up into many libs, and to clean this stuff up i need to add support to map the libname by symbol 10:42
now my problem is that I don't really know C++ 10:43
Juerd 21 users already for a server that doesn't exist yet 10:44
I wonder if it's going to hold :|
nothingmuch hah
Juerd is glad L~R didn't announce it on PM :)
nothingmuch oh fun
now i screwed up the macro that declares a dynamically loaded function
Juerd hopes the users are spread over timezones well enough :) 10:45
webmind Juerd, what is this server for? except have perl6 ? 10:46
Juerd webmind: Provide access to a linux box with good connectivity for those who don't have this
integral is refactoring Parser.hs this afternoon which is a *big* file
Juerd webmind: And some want to use screen+irssi for this channel and irc.perl.org #parrot 10:47
nothingmuch oh wow, different errors this time
Juerd webmind: So in the end, this server is supposed to boost productivity of many volunteers at the same time.
castaway assuming it doesnt bog down under the load and reduce it :) 10:48
Juerd castaway: Yea.
webmind Juerd, hmk
Juerd castaway: I'm a bit worried about that.
integral castaway: incentive to learn how to refactor Haskell ;-)
nothingmuch integral: isn't it supposed to be easy to refactor, being a combinator parser?
castaway heh, indeed 10:49
Juerd castaway: I think a dramatic decrease of memory use for pugs would be about the nicest thing that could happen right now :)
nothingmuch i mean, Pugs.Parser.Primtitives, Pugs.Parser.Blocks etc
integral nothingmuch: it's the more refactoring into separate files that's the problem
nothingmuch then you have Pugs.Parser which defines the top level grammer,
and imports, no?
integral take for example parsing quotes
Juerd castaway: But if this doesn't hold, I'll try the Perl Foundation for an upgrade
castaway: At least if it doesn't hold, that itself proves people want to use this :)
integral You can have code interpolated in quotes, so expressions need to parse quotes which need to parse expressions. So you get these massive loops of cyclic dependencies. 10:50
nothingmuch ah
so you need the hs_boot crap?
or are you trying to avoid that?
integral yes, but we're not using that due to GHC unstableness
nothingmuch that part about GHC really struck me as odd 10:51
something as elegant as haskell really ought to support this kind of stuff
castaway what are you putting in it, for RAM?
Juerd castaway: 1 GB of DDR SDRAM 10:52
castaway I'm sure you could get/ask the various users to donate a euro or two for more
(each that is)
integral how much is that stuff? >200ā‚¬?
Juerd castaway: I ordered 2*512, filling up both slots
integral: An upgrade to 2 GB would cost around 240 euros 10:53
nothingmuch it compiled...
Juerd But as a company, I can't take donations without HUGE (32%) income tax
castaway what, only 2 slots? is this a mini board?
integral ouch
castaway umm, then take them as a private person?
Juerd castaway: Yes, micro atx
castaway: Same thing, in .nl
castaway boggle
Juerd castaway: See Jouke's rants from the time he got a big donation for pvoice
castaway then let somebody else take, and send you the RAMs :) 10:54
Juerd castaway: But perhaps this can be arranged through the stichting perl promotie (dutch perl promotion foundation)
castaway: That's another option
Let's first see if this'll hold
castaway hmm, how do the tax people know someone donated you cash? thats.. weird
(privately, anyway)
Juerd castaway: There are ways to make sure they don't. But that is called fraud, and is a felony. 10:55
castaway somehow this doesnt make sense.. but I guess thats just the cultural difference 10:56
nothingmuch Juerd: we can establish a trust protocol of some sort where money is paypalled to one of us without such constraints, which then pays with CC for hw ordered from dutch places to you
webmind Juerd, you could donate space/bandwith/time as a company to the stichting who provides hardware and receives donations for this ?
Juerd nothingmuch: Dutch places and CC. Heh. That's very rare.
webmind: That would be possible
webmind Juerd, do you have a tax advantage in the netherlands for donations ? 10:57
as a company
Juerd First, I wish to stick to the current plan of Convolution owning the entire machine, which is a much simpler legal construction.
nothingmuch legal stuff sucks so bad,
Juerd webmind: Nee, alleen een stichting kan donaties krijgen zonder inkomstenbelasting te betalen.
webmind ok
nothingmuch look how much overhead over such a simple thing
Juerd nothingmuch: Just for juridical simplicity, I have to own this box instead of donate it. I could donate money, not hardware. Long live weird regulations. 10:58
And this money buys less hardware in stores than from wholesale suppliers 10:59
If this box is a success, perhaps we can get other ISPs to sponsor entire boxes
castaway: Oh, and the reason for mini-itx is the small enclosure. The small enclosure is because rackspace is expensive 11:01
kungfuftr Juerd: www.bytemark.co.uk
Juerd kungfuftr: What about it?
kungfuftr could always sponsor multitudes of those lvm accounts 11:02
Juerd Heh
I don't think they like huge memory users on virtual accounts :)
There is a reason I didn't just install user-mode-linux (virtual machine) on one of my existing boxes :) 11:03
kungfuftr Juerd: they don't care... it's limited
Juerd kungfuftr: To 64 MB, yes
kungfuftr =0) 11:04
integral 64MB makes your pugs builds take 8 hours :-)
Juerd kungfuftr: Sorry, but that just isn't even close to enough
integral but how many people are going to be hacking the Haskell? Won't most people be writing tests, docs and p6 code? If so, you just need a system-wide pugs installation
kungfuftr wonders if fotango would be willing to sponsor some hardware, etc.
Juerd integral: Probably - but some people want to compile pugs, for whatever reason 11:05
integral *nod* I'm trying 2 parallel pugs builds at the moment with 1G ram
Juerd integral: For example, just after a fix that should make *their* test pass
integral well as long as it's not a fix in the Parser, Prims or AST it's not bad ;-) 11:06
Juerd But - the smoke cycle can probably install fresh pugses all the time
integral and make install gets tested :-)
Juerd Is there a way to cache ghc compiles globally?
Like ccache does for gcc 11:07
s/does/can do/
xinming anyone here can tell me where to find the perl 6 doc? I mean the language specification or something else.
I've read perl essentials 2nd (version 2004 June). So I want to know if the book is out dated. 11:08
mauke dev.perl.org/perl6/doc/synopsis.html 11:09
xinming mauke: thanks
Juerd xinming: Every *book* about Perl 6 is outdated. 11:10
xinming: They are outdated two hours after they are pressed. 11:11
xinming: By the time they are in stores, they are a month behind
xinming: And by the time you buy and read them, an entire perl 6 interpreter was written by autrijus :)
scook0 it's hard enough keeping up with Perl6 as it actually happens... 11:12
mauke while he was sleeping!
castaway autrijus sleeps?
nothingmuch castaway: sometimes he claims that 11:13
castaway doesnt believe it 11:14
mauke maybe his computer has a neural interface and he codes in his dreams 11:15
castaway this would not surprise me :)
Juerd castaway: Well, he sometimes says he's off to bed, and then after a few hours you see a huge commit in the logs. So I don't believe it :) 11:16
castaway hehe 11:17
from what I figure, he sleeps only in max. 30 min chunks, or something
Juerd I think he hyperthreads
One brain sleeps while the other waits for input
castaway ahhh.. thats it .)
Juerd No, the other way around :)
One brain sleeps while the other PROCESSES :) 11:18
One brain sleeping with the other waiting is MY brains :)
castaway :)
nothingmuch sometimes hyperthreads 3-4 active brains, but it only lasts about 5-6 hours 11:21
then all the brains have overheated and are clocked down by the BIOS
for about 2 days
i think that is mostly dependant on exactly 8 hours of sleep 11:22
good sleep too
not too much sugar
and headphones 11:23
11:25 chady is now known as chady_
Juerd Ooh, first part arrived: the main board :) 11:29
nothingmuch =) 11:30
deceptive code is sooo bad 12:12
code that seems to be doing something
but actually never happens
especially with everyone around you telling you that's what it does
integral ah, I've found the real killer memorywise: having a 168M ghc sitting there whilst cc1 balloons up to 250M 12:17
so the trick if you're running multiple GHC's is to not have them compiling Pugs.AST.Internals simultaneously 12:18
svnbot6 r3811, autrijus++ | * add Eric's Tutorial to READTHEM 12:21
wolverian argh, people who can't use mailing lists drive me insane. I don't want mailing list posts in my inbox! 12:25
integral hides under a rock
wolverian better to learn so you won't starve :) 12:26
castaway wolverian: I would put the blame on mail/news clients that insist on default to "answer all" and not the mailing list 12:33
wolverian castaway: if the client has the functionality to reply to the mailing list only, even if it's not the default action when one pressed 'reply', I think the user should be blamed. if the client has no such functionality at all (thunderbird..) it's certainly horribly broken. 12:35
s,pressed,presses, 12:36
masak wolverian: sorry, I accidentally pressed 'send' without removing you :/ 13:03
masak won't do it again
help reason
masak apparently struggles both with email and IRC today 13:04
Limbic_Region ok - a while back I asked about @hand[1..3]>><suit> syntax
IIRC, it was valid but unimplemented 13:05
sound right?
wolverian masak: ah, don't worry. it doesn't really bother me that much, at least if it doesn't happen all the time. :) (I replied to you, by the way, on the list.) 13:07
integral hmm, why is Pad a data rather than a newtype?
wolverian Limbic_Region: looks right. does it need .<suit>? 13:08
Limbic_Region I think . is only necessary when it is necessary (but I am not positive on that) 13:09
wolverian well. I think I agree! :)
Limbic_Region ok - so >> is like a distributive directive - how would I have said the same thing if I meant the whole array? 13:10
@hand>><suit> ?
wolverian yes.
Limbic_Region ok
so then doing something like - all( @hand>><suit> ) eq 'D' should be valid syntax?
wolverian yes.
(the parens should be optional there.) 13:11
Limbic_Region ok - well then I guess I should write a test for it so it gets implemented then ;-)
wolverian please do that. :) I thought >> worked for methods already, by the way. does it not?
Limbic_Region I am sure that it does
wolverian (I don't have access to pugs currently, I'm at university)
Limbic_Region I think it is just limited implementation
wolverian right. please write a test then. 13:12
Limbic_Region you can always browse the subversion repository though
wolverian by the way, has anyone been updating perl6.vim in utils/? Its last modification date is marked as something in 2002!
Limbic_Region: HTTP doesn't lend itself well to a grep :) 13:13
Limbic_Region right
which is my problem ATM
I forgot to ask Jonathan if he could include the test suite in his binary builds
any idea where there may be existing tests for >> ?
wolverian looking, sec 13:14
operators/hyper.t
it tests for @r>>++ and such 13:15
it doesn't seem to test for hyper subscripts
only method and ++
Limbic_Region ok - so let me see about adding a test for slice and for dereferencing 13:16
gaal wolversian, sure, svn log it.
wolverian gaal: I don't have svn here.
and I can't install it.
theorb wolverian: wget?
gaal well, yes: there have been minor changes.
wolverian theorb: is the raw svn log available via HTTP or something else besides svn? 13:17
Limbic_Region I think so
theorb The raw log, not that I'm aware of.
Limbic_Region hang on
theorb You can get it cookied, though.
Er, cooked.
wolverian what's cooked? :)
gaal rt.openfoundry.org/Foundry/Project/.../pugs/log/ ?
wolverian ah. right. thanks!
gaal that also has diffs between versions, but i found it a little awkward to use. 13:18
wolverian woo, openfoundry has a search function too :)
oh, that is for projects, not inside a project. :/
have to go. bye! 13:20
svnbot6 r3812, gaal++ | %h{"key"} -> %h<key>, plus a couple of fixes to the TODOed AUTOLOAD section.
Limbic_Region perlbot nopaste 13:22
perlbot Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel>
pasteling "Limbic_Region" at 129.33.119.12 pasted "Do these tests look reasonable for adding to t/operators/hyper.t" (11 lines, 279B) at sial.org/pbot/10372 13:23
Limbic_Region and if they do look reasonable - would someone mind comitting them? 13:24
gaal you don't have the commit bit, l~r?
Limbic_Region I do 13:25
but I have an issue from committing from work
gaal ah :)
Limbic_Region and I have been without net access at home for nearly a month
which if that isn't rectified by tomorrow - I am going to be a very unhappy camper 13:26
and I'm not very nice when I am not happy
gaal i have a very weird recurring transient network problem here. sometimes it looks like HTTP stops working. :)
Limbic_Region out of curiosity - does anyone know how easy it is to configure svk (or svn if I could get it installed) working through an HTTP proxy? 13:27
gaal doesn't svk require svn?
integral would hope you just set $*ENV<<http_proxy>>
Limbic_Region gaal - if it does it is all under the covers 13:28
I think it just needs some library or something
not sure
I would have to clear it with security anyway - rather hard to justify since p6 doesn't have any tangible relation to my job 13:29
my boss buys the "by learning new stuff I am making myself more valuable" bit - not sure security would be so understanding 13:30
in any case, if those tests look reasonable I would appreciate someone comitting - I should be able to start carrying my own load tomorrow
gaal i just got my port 80 back. looks okay to me... suggest a name, l~r? 13:32
oh, sorry, you did
theorb I should suspect it'd be easy, but depends on the firewall. 13:33
clkao Limbic_Region: same as svn. you modify ~/.subversion/config
or servers, can't remember
Limbic_Region thanks clkao - will keep it in mind should I find a real application of p6 for work 13:34
gaal r3813, l~r. 13:35
Limbic_Region cool - thanks 13:36
svnbot6 r3813, gaal++ | hyper dereferencing tests by Limbic~Region++
Limbic_Region once that gets implemented - all the places where I used map I can use >> which will be a major improvement visually 13:38
integral hmm
integral stares at what ruleSubHead is doing
it uses maybeColon to grab a colon in `method :foo' for example, but the maybeColon is missed from the `sub :foo' case, but this still parses :-/ 13:39
also, is using ":d sub bar { }" meant to produce just 'Noop; Noop;" as output? 13:40
Limbic_Region integral - did you just uncover a Schroedinbug ??? 13:41
www.huis.hiroshima-u.ac.jp/jargon/L...inbug.html 13:42
integral I really, really, hope not.
Juerd feather is built 13:46
Now I have to wait 100 minutes for KNOPPIX to download.
integral it's not going to be debian?
Juerd It is
juerd.nl/debianraid
I accidentally removed the knoppix iso from my laptop, and someone stole my cd (again) 13:47
castaway (knoppix IS debian..)
Juerd where is is is, not == or eq :)
integral *blink*, your swap is raided? 13:48
Juerd Of course!
integral why? 13:49
Juerd Don't want part of system memory to suddenly go away when a drive fails
The system should keep running at least until I'm there to service it.
And not die at the first crash
RAID is about more than just data safety
integral hmm, interesting
Juerd Interesting? I'd call it common sense :) 13:50
Although you're probably the fifteenth to react like this :)
integral would have gone for double the swap space, but with less reliability
Juerd I would certainly not
Do you know what happens if you pull one of two DIMMs from a running system? 13:51
Apart from the electrical damage, the difference with failing swap space is not that big.
Programs using that part of memory will segfault
Or die with bus errors
etcetera
Now, what if the long idle *init* got part of it paged out? That must hurt. 13:52
svnbot6 r3814, bsmith++ | Moved a few pad handling functions to Pugs.AST.Pad. 14:14
theorb shrugs. 14:15
Like everything else, it's a trade-off.
castaway ah, there you is 14:17
theorb I am everywhere.
castaway hmm, well my /msg's arent being answered..
svnbot6 r3815, bsmith++ | Removed the use of maybeColon from ruleSubHead because it doesn't appear to 14:21
r3815, bsmith++ | actually do anything since ruleSubName just takes the : as part of the name
r3815, bsmith++ | anyway.
iblech integral: [:d sub ... {...} shows Noop; Noop] That's ok, as all sub declarations are implicitly done in BEGIN blocks 14:23
integral sure, but it's not very useful for debugging the parser
iblech integral: This is so sub infix:<...> {...} can work
integral I had to use: :d my sub ... { ... }
iblech integral: Right
integral it would be nice if the noop node hung onto what what ran, when you're doing debugging
dakkar did anyone write any Perl6 JAPHs we could put on the t-shirt for the Italian Perl Workshop? 14:27
or golfs..
iblech dakkar: There's examples/golf 14:28
japhy is <after ...> a look-AHEAD or a look-BEHIND?
is it saying "this pattern must come after where we are"
or "we must be after this pattern" 14:29
I think it's a terrible name :/
Juerd japhy: with /foo <after bar>/, "after" is about "bar" and has nothing to do with foo 14:30
This match fails because foo cannot be bar
It is look behind 14:31
See it from pos(): "we are after bar"
japhy so "after" is look behind, and "before" is look ahead
Juerd Yes
japhy ok. 14:32
it's from the point of view of pos(). good explanation.
gaal iblech, please see perlmonks.org/?node_id=459888 14:34
who's responsible for the svn commit feed? 14:36
it isn't escaping HTML
dakkar is @a Ā»+Ā« @b the same as map {$^a + $^b} zip @a,@b ? 14:37
Khisanth try it out and see? :)
iblech gaal: Thanks, replied
japhy dakkar - I think that is exactly what it's like.
gaal iblech++ 14:38
integral ah, the Context in ruleSubScopedWithContext is actually the return type 14:51
dakkar if I try to run map {$^a + $^b} zip @a,@b I get '$b undeclared' 14:52
ninereasons dakkar, that bug has been seen. but I don't know whether there is a test written to demonstrate it. 14:55
dakkar ok
on the same note, map $a,$b -> {$a+$b} zip @a,@b should work? 14:56
(i.e. is it correct syntax?)
iblech dakkar: I think you need a "," after the "}"
dakkar: Not sure, though 14:57
dakkar pugs (svn up 10 min ago) doesn't parse the '->'
14:57 Aankh|Clone is now known as Aankhen``
integral err, the syntax for -> is: -> $a, $b { $a + $b } 14:57
iblech integral: D'oh, of course, you're right 14:58
dakkar oh. ok.
ninereasons however, it also will not work, if I recall
dakkar it does something.
pugs> print map -> $a,$b {$a+$b} zip [1,2,3],[4,5,6]
142536bool::true
ninereasons it doesn't appear as though map is doing anything there. 15:00
dakkar righ
integral hmm
theorb I would expect that to give 5, 7, 9, though.
integral ponders doing the Pugs.Parser -> Pugs.Parser.Internals move 15:01
ninereasons it would, if it saw $b
but it doesn't - that's the bug, I think
dakkar pugs> print map -> $a,$b {"$a + $b"} zip [1,2,3],[4,5,6]
1 + 4 + 2 + 5 + 3 + 6 + bool::true
Juerd 22
dakkar yes, $b is not used
iblech Hrm -- I thought map is supposed to only take one argument?
ninereasons oh. well, you may be right, iblech 15:02
Juerd iblech: No, if the closure has arity of 2, it takes 2 per iteration.
dakkar just like 'for'
iblech Juerd: Oh! Didn't know that. It doesn't seem to be implemented yet, though
Forth_ does 'next' work in while loop? 15:03
Juerd dakkar: Write a test?
dakkar works in 'for'
Juerd Forth_: It should.
dakkar pugs> for (zip [1,2,3],[4,5,6]) -> $a,$b {print "a: $a b: $b"}
a: 1 b: 4a: 2 b: 5a: 3 b: 6undef
Juerd: where should I write it? 15:04
Juerd dakkar: In your favourite editor's write buffer
dakkar Juerd: ;-)))
Juerd doesn't understand the question, really
dakkar let me rephrase
how should I let the rest of the world know that I wrote the test, what is the content of said test, and that it should be included (as todo) in pugs's test suite? 15:05
ninereasons [+] zip[1,2,3],[4,5,6]
:)
Juerd dakkar: Ask autrijus for an svn login with commiter access
dakkar: perlmonks.org/?node_id=455988 15:06
dakkar ponders whether he wants that much power...
Juerd Why not?
Every mistake you make, and you probably won't make any, can be reverted.
dakkar hmm... I might do it 15:07
PerlJam dakkar: in lieu of getting commit access, you can send a message to [email@hidden.address] and someone with commit access will probably make it happen. 15:08
ninereasons dakkar, I can assure you that you probably deserve commit access more than I do :-) 15:10
Juerd I don't think it's about deserving 15:11
But instead about productivity
If you can work with svn directly, you can do more in less time and you don't have to bother others every time you have a patch
ninereasons Juerd, nicely made point 15:12
should parens be required, for hyperoperators to work on lists like 3..8 ? 15:13
PerlJam And if you screw up in a subtle way, you can fix it without getting others involved :)
ninereasons: er, why would they be required? 15:14
ninereasons (1..3) >>+<< (4..6)
Juerd ninereasons: No
ninereasons 1..3 >>+<< 4..6
Internal error while running expression:
a but, I guess
Juerd ninereasons: >>+<< as a while has the same precedence as normal +
ninereasons s/but/bug/
dakkar so it gets parsed as 1..(3>>+<<4)..6 ? 15:15
Juerd Hm, yes 15:17
Juerd didn't expect .. to have such low priority
wolverian hmm. that's a surprise. I've always done 1..($a+$b) in perl5 too, even though + has tighter precedence. 15:19
Juerd Me too 15:20
Limbic_Region Juerd - your offer has leaked to the Monastery 15:34
albeit - buried in a thread
perlmonks.org/index.pl?node_id=459994
integral wonders about the point of methOps 15:38
Limbic_Region integral - so we can all be as productive as autrijus 15:39
integral heh
Limbic_Region meth does keep you up for days on end with an alert mind right?
Odin-LAP Depends. 15:40
You're referring to methamphetamine, correct? 15:41
Limbic_Region Odin-LAP yes, and I do realize it doesn't have the same effects in all people (ADD/ADHD for instance)
it was meant to be an attempt at humor 15:42
Odin-LAP Well, that wasn't what I was referring to, actually. :>
It depends on what you mean by 'alert', largely. ;) 15:43
integral hmm, the stuff for quotes is *scary* 15:44
Odin-LAP Indeed. 15:45
dakkar is there any way to apply a s/// to a constant and get a modified copy? 15:48
PerlJam dakkar: that makes no sense. 15:50
gaal doesn't the p5 idiom work? (my $modified = $constant) =~ s///
PerlJam what gaal said
dakkar no, it looks for a &my subroutine
gaal alternatively, in some cases you might do with "is copy" :)
it does? that looks like a precendece problem, maybe a bug, too. 15:51
Limbic_Region dakkar - you don't need the s in the ///
unless you do that is
dakkar I don't?
Limbic_Region my ($match) = $string =~ /(foo)/; 15:52
dakkar I want to do s:g/\s+/ /
Limbic_Region if you don't actually need to change the string but need to capture some pattern - you can get away without the s
dakkar I think I need the 's'
Limbic_Region if that made any sense at all
integral ah ha! There's some RuleParsers that don't actually do parsing, but just read the state
Limbic_Region dakkar - no you don't
course I don't know how to do this in p6
Aankhen`` What's wrong with t/builtins/lists/uniq.t? 15:53
dakkar Limbic_Region: how do you collapse the spaces in perl5?
gaal L~R, when you have /g w/o capture the approach you suggest doesn't work that well.
Limbic_Region my $foo = join '', <extract all non-strings>
integral wonders if getState can be changed to ask
oh, ask is reader, state is get/put 15:55
bah, there's no MonadState instance for GenParser 15:56
Limbic_Region errr - sorry, someone was talking to me
my $foo = join '', <capture all non-whitespaces>;
integral my $foo = [~] <capture all non-whitespaces> ... 15:57
Limbic_Region right - so we just need the fill in <>
in p5 you might use () = $str =~ /(\S )/g;
or something like it 15:58
iblech Yay! Juerd, you remember we talked about map dealing with n-ary functions, and I said they were not yet implemented? I correct myself :) 16:02
autrijus rehi
iblech Hi
autrijus <- deep in $work, so will lurk a bit :)
dakkar: [email@hidden.address] ? I'll send an invitation mail
iblech: want to be metacommitter? :) 16:03
iblech autrijus: Sure :)
autrijus iblech: done. welcome aboveboard :D
iblech autrijus: :D
autrijus the admin ui url is rt.openfoundry.org/Foundry/Project/...?Queue=270 16:04
Juerd iblech: Wasn't that, like, just an hour ago?
dakkar print [~] (-> @c is copy {gather { while @c[0] { for @c -> {take shift $_} } } }(map { [ split "",$_ ] } ('Joec','utrk','shle','te6r',' r .','a h.','nPa.')));
iblech Juerd: Yep :)
dakkar (that's what I was working on...)
autrijus dakkar: whoa. 16:05
Juerd iblech: I remember that.
autrijus dakkar: commit it to examples/obfu/ please :)
integral :0
autrijus actually, examples/japh/
dakkar It will get printed on the t-shirt at the Italian Perl Workshop
Limbic_Region dakkar - in p5, this is how you might do it (without substitution) perl -e 'my $str="white spaces suck";my $new= join "", $str =~ /(\S )/g;print $new'
dakkar autrijus: ok, I'll do. 16:06
Limbic_Region not sure if the same thing would work in p6
dakkar Limbic_Region: but it's ugly ;-))
Limbic_Region not really
join '', $str =~ /(\S )/g # is ugly?
Limbic_Region thinks it is kinda sexy
dakkar you're building a list to move between strings... 16:07
PerlJam uglier than ($new = $str) =~ s/\s+//g;
osfameron At 3815, nmake gives "makefile(420) : fatal error U1087: cannot have : and :: dependents for same target"
gaal should -n on the commandline autochomp? it does now.
contrast: /bin/echo -e "one\ntwo\nthree" | ./pugs -ne 'say "> $_"'
Limbic_Region *shrug* - I tend to not modify strings that I only want copies of
gaal and /bin/echo -e "one\ntwo\nthree" | ./pugs -e 'say "> $_" for =$*IN' 16:08
Limbic_Region and if it is a constant I really didn't mean to modify it
PerlJam Limbic_Region: but that doesn't modify $str at all.
Aankhen`` Ahh.
uniq.t failed because there was no argument between the code block and the next parameter in a function call. 16:09
Limbic_Region *shrug*
dakkar gaal: to get autochomp in p5 you have to use -l 16:10
PerlJam "say" makes -l largely irrelevant for perl6 16:11
gaal: I think autochomping is probably best.
gaal er, please look at my examples
autrijus hm
print [~] (-> @c is copy {
gather {@c.map:{take(.shift)} while @c[0]} 16:12
} ([<Joec utrk shle te6r>,' r .','a h.','nPa.'].map:{[split "",$_]}));
autrijus can't resist the golfing urge
but in particular, $_.shift can be shortened to .shift
gaal i know how you autochomp in p5. i know about say. i was wondering if -n is supposed to autochomp, while =$fh not.
dakkar aha! that's the way. I got bitten by 'shift' not dofaulting to $_
autrijus yeah, I'm glad there's ./method so .foo can mean $_.foo 16:13
Juerd++
and also, s/print/say/
PerlJam gaal: and I think that -n autochomping is probably the best behavior (and =$fh not unless we asked it to)
autrijus say [~] (...) 16:14
also, if you make the @c slurpy, I think it will copy by default 16:15
but that may be construed as a bug.
or not. not sure
gaal autrijus, since you mentioned slurpiness :) i'm revisiting pipe open 16:16
and don't see why its fhs are indeed slurpy!
autrijus say [~](-> *@c { { @c.map:{take(.shift)} while @c[0] }.gather }
([<Joec utrk shle te6r>,' r .','a h.','nPa.'].map:{[split "",$_]}));
I shouldn't golf. it's even more addictive than nethack. 16:17
autrijus tries to fight the withdrawal
gaal: slurpy in which sense?
gaal it returns VHandles just like open, but look at this:
./pugs -e 'my($i,$o,$e,$p) = Pugs::Internals::runInteractiveCommand("cat -"); say $i: "one";say $i: "two";close $i;say =$o'
that last say, it slurps everything in $o
shouldn't it have only read one line? 16:18
autrijus no, list context and all.
say scalar =$o
gaal eh
right
autrijus that hadn't changed since p5 :)
gaal is teh dumb
autrijus nah. cryptocontext is teh confusing
gaal heh :) okay, got pointers for me on how to make a facade for this written in perl6? 16:19
autrijus facade? this?
you mean open("cat -")? 16:20
gaal i know i keep bringing this up and it isn't specced yet, but i want a.. usable open + pipe open already
autrijus open("cat -|"), even
so, I don't know... I think both IPC::Run3 and IPC::Run are good UIs 16:21
gaal not that one, i think it was agereed it's a bad idea and that magic is reserved for io("cat -|")
autrijus so I'd be happy to see either ext/IPC-Run3/ or ext/IPC-Run/
but really, improvise :)
gaal hmmm, okay; but how does the run-of-the-mill programmer use a unidirectional pipe? 16:22
svnbot6 r3816, iblech++ | * map can now take n-ary functions.
r3816, iblech++ | * Added a test for n-ary map to map.t.
gaal really i'm asking: how to add a prim, that's implemented in perl6
autrijus gaal: you can use op1 eval :)
and write perl 6 in Prim.hs 16:23
(not saying it's a good idea neccessarily)
(but if you refactor it away a bit as Prelude.pm it probably works better)
(Prelude.pm can also contain all the signatures for Prims, so we can kill the bad table)
gaal that's the step i'm missing, i don't see how that would work
autrijus how calling eval and evalExp would work? 16:24
it's easy... you already have params in the form of $?0 $?1 etc
so in Prim.hs you can just say
gaal how Eval finds the code to actually run when it encounters a "prim" that isn't in Prim.hs
autrijus gaal: oh. you still need to declare it in Prim.hs table below 16:25
or find other ways to put it into initDecl
or the emptyEnv
gaal what's initDecl?
autrijus gaal: anyway, you can first do it as a module and we can see how to integrate it makes more sense
err, primDecl
it's the list of symbols to load at init. env. 16:26
gaal gotcha, thanks.
autrijus np :)
autrijus $works and lurks
I think with good codegen, I'd welcome defining most prims as Prelude.pm 16:27
gaal src/Prelude/Prelude.pm ?
autrijus but currently it will slow things down a lot
gaal i'm starting modestly, with pipe1 16:28
so that most tests can get rid of the temporary files :)
Limbic_Region speaking of things being slow
autrijus gaal: src/perl6/Prelude.pm probably
Limbic_Region I think my cribbage hand scoring code might be good to profile to find bottlenecks
it is S-L-O-W
autrijus but maybe ext/Prelude/ for now really
theorb If it's under src, it should be under Pugs.
autrijus or ext/Builtins/
Aankhen`` Would introducing HTML::Entities as a required module for CGI be a Bad Thing (tm)? 16:29
autrijus Limbic_Region: yeah. sadly the bottlenexk is well known
Limbic_Region: it's op dispatch loop
Limbic_Region ok
Forth_ hmm...my make install on FreeBSD stopped at /usr/bin/perl -Iinc util/version_h.pl src/Pugs/pugs_version.h
autrijus Limbic_Region: and that part can't be fixed in interpreter core without rewriting Eval.hs -- something I don't want to do
theorb Hm, autrijus, I considered this a while ago, but didn't say anything.
autrijus Limbic_Region: so instead I'll just improve the codegen part.
theorb Should opN return a bit of code to do something, rather then doing it?
Limbic_Region well - I can improve things by using less ops of course 16:30
autrijus Limbic_Region: because we know that by compiling things to something lower leve, the op dipsatch loop will be gone
Limbic_Region: sure, but that's not the solution for general adopters
Limbic_Region but I intentionally made it a boheamoth so there would be a lot of room for improvement
autrijus theorb: "code"
theorb: p6 code?
Limbic_Region right autrijus
theorb Then we can replace the opN call with the thing that opN returns, so we only have to do the lookup once. 16:31
No, haskell code.
autrijus Limbic_Region: as I said on pm, my priority now is 1)interop 2)codegen
theorb: oh. in -O mode GHC already does that for you.
I think that's what skew found out.
theorb Oh.
autrijus referential transparency and all that.
theorb Noddage.
That's why I haven't brought this up before -- I thought haskell might have already been that smart. 16:32
autrijus it is indeed that smart :)
theorb Turns out I should have stayed with that first thought.
autrijus that's okay :) 16:33
the GHC optimiser is still largely a mystery to me.
Limbic_Region autrijus - out of curiosity, which should be faster (assuming both were implemented currently) 16:35
grep { $_<val> == 5 } @combo;
or none( @combo>><val> ) == 5;
err - there should have been a ! in front of the grep
I ask because part of the problem with the cribbage scoring is that I had to work around unimplemented features (which may make things faster naturally) 16:36
autrijus any(@combo>>.<val>) == 5
Limbic_Region is the . necessary?
autrijus I think so.
Limbic_Region if so, the two tests gaal added for me need to be changed 16:37
autrijus the . is mandatory unless the preceding things is a quotelike
Limbic_Region t/operators/hyper.t (dereferencing tests)
autrijus or an identifier
which >> is neither
Limbic_Region ok - so the test needs to be changed
autrijus k. I'm sure someone will take care of that :)
Limbic_Region and having >> would make it faster
autrijus to answer your question -- I don't nkow. that's why I want clkao's Benchmark.pm.
Limbic_Region ahhh 16:38
ok
autrijus it looks like same number of runloop will be needed.
but any() will only run once if all val in @combo is identical
so it has the potential of being faster.
Limbic_Region and I have a lot of map() that could be transformed to >> as well 16:39
autrijus but identity/equiv test may not be faster than "== 5"
so I don't know. :)
gaal do we have ([ $x, $xs ]) sub params already?
Limbic_Region *shrug* - clkao's Benchmark.pm will be a great value indeed
autrijus gaal: no, not unpacking yet
I think he's already got it written. but he said he's to lame to finish up and check in 16:40
gaal 'nks.
Limbic_Region seen clkao
jabbot Limbic_Region: clkao was seen 3 hours 6 minutes 48 seconds ago
Limbic_Region I will beg/grovel next time I see clkao for it then 16:41
autrijus I think clkao only accepts the .complain method
so that's what you should invoke him with
theorb autrijus++
Limbic_Region oh - I am sure the way I am going about counting 15s in the cribbage hand is definately not the smartest way to do it 16:42
and runs for that matter
gaal do we have all(<module package>) ? 16:45
svnbot6 r3817, adehohum++ | Fixing undef tests 16:46
autrijus gaal: yes 16:47
but currently they are synonyms
gaal good enough for me :)
autrijus amusing answer to revdiablo's thread: perlmonks.org/?node_id=460030 16:48
"I'm not using Perl 6 because... I'm too busy learning Haskell. Seriously. The Pugs project has convinced me that Haskell is an incredibly powerful language and I want to know why and use that power myself." 16:49
gaal heh
Juerd lol 16:51
Meanwhile, I'm wasting my time fighting yet another php fanboy on PM
perlmonks.org/?node_id=460015
theorb It's actually a very interesting question for me. 16:52
autrijus mumbles something about north wind and the sun
theorb I don't think we've done that much stealing from Haskell -- in purticular, I still see lots of useful Haskellisimis that p6 doesn't have. 16:53
Juerd I wonder how [thinker] with only 100 posts, the top post having a reputation of around 50, can be saint.
Were the boundaries lowered?
autrijus theorb: such as? 16:54
gaal ./pugs -e 'module A; package B; say $?PACKAGE' --> 'main'
autrijus I'd like "is pure" in functions.
theorb The ability to write lots of variants on a function so easily.
autrijus is it not multisub?
theorb Pattern-matching makes it so easy, though. 16:55
autrijus I think cabal got value-based mmd in, too
and the where forms
gaal that's a bug, isn't it?
autrijus so the thing we don't have yet is pattern guard
gaal when put in a file, the resutl is "A".
theorb Where forms? You mean the backwards lexical scope thing?
dakkar gaal: try with a newline after each semicolon...
autrijus theorb: no, p6 where forms 16:56
multi sub moose ($x where { $x > 7 }) { ... }
theorb Gotcha.
gaal dakkar, no difference.
theorb Hm.
gaal autrijus++ # moose reference 16:57
autrijus gaal: that's a bug. write test for it :)
theorb I still feel like there's a difference there, but possibly because I haven't seen the p6 version in action.
autrijus theorb: there is one single feature that haskell have that I wish p6 has.
that is, tagged unions.
haskell's pattern matching is so powerful because all its data types are tagged unions.
and so we can get warnings about incomplete multisubs, and do structural folds, etc 16:58
but I'm not sure how to fit tagged unions with enums and roles and objects
so I don't really see a p6l proposal soon :)
gaal urrrr? package doesn't work at all.
Juerd gaal: But if you have been paying attention to the PHP hype, you'd know that namespaces are old fashioned anyway 17:00
A modern dynamic language that most beginning programmers choose to work with doesn't need them
So neither does Perl 6
;)
gaal will see about mending his ways
integral has a silly idea for the parser 17:01
Forth_ I build pugs as user, make install as root, so it stops in version_h.pl waiting for 'svk info', maybe we can skip it
Juerd integral: Silly ideas can grow to be huge projects
integral rather than calling ruleExpression directly all over the place, we store the ruleExpression as a field in the RuleParser monad. Just so everything doesn't depend on ruleExpression
integral mentions something about performance sucking
theorb Forth_: The problem is that with svk there's no one file that's always touched when the version goes up, so we can't make the rule depend on a file. 17:02
boch is perl6 still under development?
theorb boch: Yes, but it's often usable anyway. 17:03
integral boch: it's going to be for the forseeable future :-)
boch where can i get it?
theorb Get svn, do svn co svn.openfoundry.org/pugs/, and compile. 17:04
There are also binary distributions.
autrijus boch: pugscode.org/ :)
Jonathan++ # new parrot/pugs binbuilds up on www.jwcs.net/~jonathan/perl6/ 17:05
dakkar I just checked in my JAPH 17:06
autrijus dakkar++ # welcome aboard!
svnbot6 r3818, dakkar++ | a simple JAPH written for the t-shirt of the Second Italian Perl Workshop
autrijus dakkar: you should note the t-shirt thing in the script itself :)
as comments
dakkar how doI run a single test?
autrijus dakkar: make install, then ./pugs t/foo/bar.t 17:07
dakkar oh, install is required...
autrijus or make
then ./pugs -Iblib6/lib t/foo/bar.t
Forth_ in my case, the root has no repository so 'svk info' ask user to press y/n, do we need to handle this in script? 17:08
dakkar autrijus: ok, I hadn't seen the 'blib6' dir 17:09
autrijus Forth_: I don't know... if you can figure out how, just fix it in script
dakkar I'm going home, see you later 17:16
svnbot6 r3819, dakkar++ | added a comment to the JAPH stating purpose and authorship
r3820, dakkar++ | test for a bug in the way map looks (or doesn't look) at the signature of the passed sub/block
r3821, iblech++ | unTODO dakkar++'s test, as map with n-ary functions is implemented now. :) 17:21
autrijus wt...? :) 17:23
obra heh
presumably a copy and paste
autrijus no, it's already there :) 17:24
so just a simple unTODO.
gaal in terms of t/ organization.... namespaces belong in? syntax? general? builtins? 17:25
pugsbugs? :) 17:26
well, r3822. 17:30
oh! SomePack::func() doesn't work either! 17:32
svnbot6 r3822, gaal++ | add tests for failing namespace declarations
autrijus gaal: right, that only works for methods at the moment
gaal ....while functions are always exported? 17:33
autrijus gaal: so please test away! this will all be fixed when I import the metametametametametamodel
yeah
gaal coro meta { "meta" } commit [~] meta
Aankhen`` When you have a `given (...) { ... }`, can you put statements like `if (...) { }` within it and then have any `when` statements within that statement also refer to the original `given`'s topic? 17:34
iblech Aankhen``: I think so. 17:35
Aankhen`` OK.
Thanks. :-)
autrijus yes. given and when are very decoupled
that is very good design.
Aankhen`` Yey.
gaal autrijus, i'm getting a "cannot cast from" error. how can i add coordinates to the three places in AST.Internals that emit this error? 17:37
svnbot6 r3823, Aankhen++ | * CGI.pm: added &escapeHTML and &unescapeHTML.
autrijus gaal: sure!
gaal: and convert them to castFailM if you have tuits. but adding coord is fine
gaal there was a "how" there :))) 17:38
gaal <<- willing to work on this, of course, but i still need some handholding when it comes to Haskell
autrijus gaal: just change the strings
oh wait, you mean the Pos 17:39
you really need to promote castFail to castFailM
gaal yes, i don't think i have it with me there.
autrijus you do that by rewriting doCast/vCast into fromVal forms
gaal i thought some about what you just said, autrijus. 17:41
the best response i could come up with was, "huh?"
autrijus look at line 423 17:42
there's lots of vCast there
gaal yes
svnbot6 r3824, Aankhen++ | * CGI.pm: allow &escapeHTML and &unescapeHTML to be exported.
Aankhen`` BBL.
autrijus you can fix it trivially by changing all the vCast into fromVal'
and change the RHS of = into return 17:43
eg:
vCast VUndef = ""
into
fromVal' VUndef = return ""
and finally, change the castFail to castFailM.
I wish I can be more helpful, but I need to work a bit now :)
gaal :)
iblech Yay, reduce with n-ary functions implemented, too :) 17:48
autrijus iblech++ 17:49
Juerd Yay 17:50
Is arity detected for placeholder blocks yet? 17:51
autrijus sure is.
Juerd { $^a + $^b }.arity == 2
Nice
autrijus pugs> { $^a + $^b }.arity
2
Juerd Whee
I'm burning knoppix by the way
So the new server can do more than just blow out hot air
gaal nice.say $autrijus: `fromVal'' is not a (visible) method of class `Value' 17:55
autrijus gaal: oh. sorry. do away with the ' 17:58
gaal: or use a "where" form
and call the fromVal' from the second fromVal thing
or introduce another doFromVal to the Class Value definition 17:59
and call it from there, etc.
not sure. try to improvise :)
gaal i'll have to, because just fromVal makes a pattern overlap... 18:00
svnbot6 r3825, autrijus++ | * fix typo in READTHEM 18:20
r3826, iblech++ | * reduce() can now take n-ary functions. 18:29
r3826, iblech++ | * Added a test for n-ary reduce to reduce.t.
r3827, iblech++ | Oops, forgot to checkin the modified Prim/List.hs.
r3828, iblech++ | die "abc\ndef\nghi" correctly vertically aligns now.
r3829, iblech++ | util/livecd -- Increase the default initrd size, as Pugs (and/or Parrot) gained
r3829, iblech++ | size. I changed this yesterday, but didn't checkin as we were in preflight.
iblech dakkar: Remember the test you wrote (n-ary map)? n-ary map is now implemented, as well as n-ary reduce :) 18:32
dakkar iblech: yes, I just noticed. You implemented n-map before I commited the test ;-) 18:34
svnbot6 r3830, iblech++ | READTHEM -- Corrected Leopold TƃĀ¶tsch's name (it's ƃĀ¶, not ƅ).
Khisanth hmm
svnbot6: doesn't do unicode yet?
iblech Khisanth: It's not svnbot which can't do Unicode, but the svn log of the system svnbot6 runs on 18:38
Khisanth: (svnbot just pipes the output of svn log to IRC) 18:39
Khisanth I see, was just a bit confused since it seemed like you can have your source in unicode but not actually write code that does I/O that handles it :) 18:41
iblech :)
Corion Hmmm. Can anyone come up with tests that maybe confirm that times() actually works? I'm not sure that it does, but I don't know how to really put that into a test... (I believe my Win32 implementation is buggy due to GHC complaining) 18:42
autrijus Corion: ./t/unspecced/times.t
Corion autrijus: Hmmm. According to that test, it works, but it doesn't convince me really :) 18:43
autrijus Corion: you can sleep 10, do a long while loop, then see what times() returns
Corion Aaaah - maybe I should also test the converse. [-] times(), times() ~~ (0,0,0,0,0)
(except that the syntax is wrong, of course)
autrijus you had me mind-bended for a moment :)
Corion ... what would be the syntax to apply a minus-zip for the two lists returned from two times() calls? 18:44
knewt iblech: no *.UTF-8 locale installed on the system it runs on?
iblech knewt: Exactly.
ninereasons man, I really like the reduce metaoperator. When I'm working in perl5 I really feel the lack of it. It's a good pain.
knewt iblech: i only have en_GB.UTF-8 on mine nowadays :) 18:45
Corion I want @a = times(); @b = times(); @c = zip(@a, @b) -> $a, $b { $a - $b }; @c ~~ (0,0,0,0,0); # except more elegant
... but maybe I should not write obfu in test code :)
iblech Corion: @a = times(); @b = times(); @c = map { $^a - $^b } zip @a, @b 18:46
knewt: de_DE.UTF-8 on my desktop systems here :)
Corion iblech: That's somewhat nicer, true :) But still, I feel that this would be an ideal use of [-], except that it doesn't work that way :)
Corion edits times.t 18:47
dakkar @c= @a Ā»-Ā« @b ?
Corion dakkar++
autrijus ninereasons: I also miss multi-param for(){} a lot :-/
Corion That was what I was looking for (except that I'll use the ASCII variant
autrijus but I feel I'm writing better perl5 because of perl6's influence :)
dakkar regarding n-ary reduce: 18:48
knewt iblech: i switched over back before christmas, since i knew that hoary was moving over to native utf8, so i thought i'd do that bit before the hoary shift
dakkar 1st: the test doesn't work because of the '$^c undeclared' bug
2nd: is it supposed to work the way the test implies? 18:49
ninereasons autrijus, me too. I think that's the way it's supposed to work - perl6 eloquence forces better perl5ish imitation
iblech knewt: Yeah, utf-8 definitely pays off, especially with Perl 6's Ā«Ā» :)
ninereasons s/force/encourage/
iblech dakkar: Did you svn up and recompile?
autrijus s/encourage/force/ # really!
ninereasons :-) 18:50
knewt ok, request for crash space in vienna during the workshop made. next it's time to book the flights (which is made more annoying due to it not being me paying :( )
dakkar iblech: maybe not recently enough... say, 30minutes
I'll recompile
iblech dakkar: Yeah, 30min are ancient in Pugs terms :) I checked the n-ary reduce code 20:29 in
autrijus 30min is downright stone age. 18:51
knewt iblech: yep. and i've got a script loaded into irssi that converts stuff from people using other charsets into utf8 for me
iblech knewt: How does the script detect it's not utf-8? Because in many cases, (say) iso-8859-15 is valid utf-8, too... 18:52
dakkar iblech: re: encoding: only for the ASCII subset, usually
it takes more time for my machine to compile pugs than for you guys to commit a new version... 18:53
iblech (make unoptimized)++
dakkar still '$c undeclared'... am I missing something?
knewt iblech: it has some (very) small autodetection (/Ć”|Ć©|Ć­|Ć³|Ćŗ|Ć£|Ƨ|Ć |Ć“|ĆŖ/). in cases it doesn't figure out automatically i can manually tell it that person A is using charset B 18:54
PerlJam dakkar: did you not declare $c?
Corion learns that where Perl has @Larry, Haskell has @Simon :)
knewt iblech: i could add other stuff to the guess list, but i can't be bothered
iblech knewt: Ah, that explains it.
PerlJam dakkar: er, what's some code that exercises the bug?
iblech dakkar: Both reduce.t and map.t run fine here 18:55
iblech checks if he hasn't forgotten to checkin a file 18:56
No, all files checkedin.
ninereasons dakkar, I've changed a test to eval_is. svn up and see if it works, now.
for reduce.t, that is 18:57
dakkar that's strange... If I do '{$^a+$^b+$^c}(1,2,3)' it works
iblech dakkar: What's the code you tried which does *not* work? 18:58
dakkar iblech: reduce.t :-(
iblech ninereasons: It can't work now, as eval_is won't find @array
ninereasons iblech, test 8 of reduce.t fails for me as dakkar describes.
Corion Hmm. If I get negative values from times() I guess it's safe to assume that my implementation is broken ;)
ninereasons i see. iblech. I'll try something else. 18:59
iblech dakkar: Try, in interactive Pugs: reduce { $^a + $^b + $^c } 1,2,3,4,5,6 19:00
svnbot6 r3831, ninereasons++ | reduce.t change a failing test to eval_is
r3832, iblech++ | unEVAL n-ary reduce test so the test can find its lexical vars.
autrijus poll: If I get next round of tuits to work on interop, should I work on inlining perl 5 in Pugs (libperl embedding), or inlinng Pugs in Perl 5 (libghc embedding)? 19:01
assuming each takes equal time. I'm trying to measure use case here :)
i.e. whether it makes more sense to use perl5 code from foo.p6, or to use perl 6 code from foo.p5
libperl embedding probably wins us libponie embedding in parrot codegen when it's there 19:02
libghc embedding wins us Inline::Haskell as well.
stevan wow
thats a hard one
dakkar sorry all, my bad: svn up; make doesn't build correctly, maybe some problems with timestamps on my machine
iblech Inlining Perl 5 in Pugs, i think, but I'd like Inline::Haskell for Perl 5, too :)
stevan I think libperl embedding it more useful 19:03
but libghc is more fun :)
iblech agrees with stevan
autrijus mmm. :)
dakkar iblech: now everything works as it should
stevan autrijus: I think you should go for "fun" since Pugs is not really ready to be "useful" yet
iblech dakkar: :)
dakkar which makefile target build the 'blib6' dir? 19:04
autrijus dakkar: "all"
stevan: ok. Pugs is optimised for fun anyway
stevan and actually Inline::Haskell could be useful more so than Inline::Pugs
autrijus (will probably continue to be)
dakkar and if I want an unoptimized build, and an updated bilb6?
autrijus "make unoptimised; make" 19:05
dakkar doh
autrijus (I know, counterintuitive)
ninereasons iblech, how about if I make the declaration of @array part of the eval. That should work, shouldn't it? 19:07
iblech ninereasons: Yeah, and is eval('...') would work too. But does it still not work? Latest revision? 19:08
ninereasons mm. 3815 ? 19:09
dakkar ninereasons: up, make, test again. works for me 19:10
iblech ninereasons: 3815 is ooold, try at least r3827
ninereasons iblech, dakkar, will do. thank you.
I don't know why it was so old anyway. my last build must have failed. 19:11
ah.. environment fuzziness, actually. r3830 was available, but not in my path. All works now. 19:13
iblech :)
dakkar a non-type-safe reduce is scary... 19:22
my @a=([0,1],2,3,4,5);@a.reduce:{[$^a[0]+$^b,$^a[1]*$^c]} 19:23
prints
(6,15)
iblech Yep, and an appropriate (Haskell) type signature would be: reduce3 :: ((a,a) -> a -> a -> (a,a)) -> [a] -> (a,a) 19:26
dakkar ((a,a)->a->a->(a,a))-> (a,a) -> [a] -> (a,a) ? 19:28
iblech So it is type-safe -- the start value and the result are two-element lists, and the reducing function takes those two-element lists and two values, and returns another two-element list 19:29
dakkar: That's the way to denote a type in Haskell. It reads as:
dakkar well, my @a is not really an homogeneus list...
more than [a] it sholud be [Either a (a,a)]
or something to that effect 19:30
iblech reduce3 is a function which takes a function which needs a tuple of a's and two a's and produces a tuple of a's, a tuple of a's and a list of a's and returns a tuple of a's.
And because nobody can parse this sentence, there're type signatures :)
dakkar: That's because the first element of the input list denotes the start element 19:31
dakkar yes, I know foldl ;-)
iblech dakkar: Therefore I passed the start value as an own parameter
dakkar iblech: and were is it, in your reduce3 signature? 19:32
iblech dakkar: It's the third (a,a)
dakkar isn't taht supposed to be the *return* value? (cfr. the signature I wrote) 19:33
Aankhen`` Is this valid: for %hash.kv -> $key is rw, $value is rw { ... } 19:34
iblech No, there're four (a,a)s in the signature. The third one is the start elem, and the last one the return value
dakkar my client must have dropped some chars...
Corion Is there a noninteractive way to make GHC show (in trace()) the type of a variable? 19:35
PerlJam Aankhen``: surely you can't modify the keys of a hash like that.
Aankhen`` I figured it wouldn't hurt to ask. :-)
iblech PerlJam: Why not? Iff .kv returns a list of lvalue lists... 19:36
dakkar: Oh
dakkar .kv returns aliases or copies?
integral what happens if you change the key to be equal to another key in the hash? That seems to me to be the real corner case
Aankhen`` In a function call, can you use `foo(*%bar)` to pass %bar in such a way that it's assigned to the slurpy named params of &foo?
iblech Corion: Wanted that, too.
Corion I guess we could steal it from ghci, but I'd prefer a premade solution ;) 19:37
iblech integral: Hm, right...
PerlJam "slurpy named params"?
integral plus a hash isn't a function from a box to a box, it's a function from a value to a box
Aankhen`` PerlJam >> If you have `sub foo (*%extra)`, can you use `foo(*%hash)` so that %extra := %hash? 19:38
PerlJam Aankhen``: Hmm. 19:39
Aankhen`` IIRC, `foo(*@bar)` would let the slurpy @_ or equivalent in foo take on @bar.
PerlJam slurpies are copies in pugs I think. I don't know if that's the proper behavior though
Aankhen`` Well, basically, if I use `foo(*%hash)`, can I access the keys in %hash using %extra<name>? 19:40
PerlJam Aankhen``: sure.
Aankhen`` Yeesh, I need to be more consistent with my backticks.
OK.
Thanks.
PerlJam Just keep in mind that foo(*%hash) will flatten %hash into a list before foo() ever sees it. 19:41
Aankhen`` Ah. 19:42
Hrm, that doesn't work. 19:43
svnbot6 r3833, bsmith++ | * moved newClass from Pugs.Parser to Pugs.AST.
r3833, bsmith++ | * moved ruleProgram and runRule to Pugs.Parser.Program.
r3833, bsmith++ | * moved unsafe* from Pugs.Parser to Pugs.Parser.Unsafe.
Aankhen`` Aha! 19:49
The solution was one of those obvious things which my mind refuses to see.
foo(hash => %hash); 19:50
autrijus your mind is p5ised :) 19:52
Aankhen`` Heh.
I'm working on &CGI::redirect.
autrijus ooh 19:53
Aankhen`` Was trying to figure out how to pass extra parameters from that to &CGI::header.
(I don't know Haskell, so I'm trying to help by working on porting modules)
So far, I love Perl 6. Once it becomes popular, people will probably feel it's just more advanced line noise, but personally, I think it's looking quite elegant so far. :-) 19:54
svnbot6 r3834, bsmith++ | Removing unused imports from Pugs.Parser.Program.
Aankhen`` Of course, my own opinion might change once more of it is implemented. :-P 19:55
ninereasons s/-noise/-music/
Aankhen`` s/-/ /g 19:56
autrijus s:g/-/ /
Aankhen`` OK, OK, my mind is P5ised. :-P
Corion Can anybody tell me what getProcessTimes() returns under Unix? Is it an int, or a 64bit number? And what units? 20:02
svnbot6 r3835, iblech++ | Pugs.Pretty -- Use split function instead of hand-rolled foldl. 20:03
Corion (or, if it returns clock_t, what is clock_t on Win32 and is it compatbile with the 64-bit stuff returned by GetProcessId() ?)
dakkar Corion: getProcessTimes in what language/library? 20:04
Khisanth getProcessTimes doesn't look very unixy :) 20:05
Corion dakkar: glibc or whatever libc
whatever is used to implement Perl5 times() on Unixy systems ;)
dakkar ok
Khisanth ah that
Corion Hmm - I should Just Check what Perl5 on Win32 does and reimplement that ;)
Khisanth it returns time_t 20:06
gaal which is an int, isn't it?
Corion Ewww. It returns seconds. Good bye resolution :(
Oh well - makes my job easier :)
gaal noooo! let's have hi res by default 20:07
Corion If you tell me where to stuff the extra precision ...
Hmmm - I could return a float upwards and let other people worry about it :)
... instead of returning a CClock, which is clock_t 20:08
gaal setitimer
seems to have ms granularity
Corion Does Haskell have a fixed point numeral ? Or an arbitrary precision numeral?` 20:09
integral wonders why runRule takes a function as its second argument 20:11
gaal Corion++; # helping with this: pugs -V | find "archname" --> archname: MSWin32-x86-multi-thread
Corion Maybe Data.Ratio
integral the caller can just compose runRule with that function for the same effect :-/
Corion gaal: ? Where did I help with that?
gaal: BTW, pugs -V:archname is shorter :)
gaal the compiler thingie.
Corion (and doesn't require a second program)
gaal indeed! nor one as atrocious as window's find 20:12
autrijus integral: please refactor mercilessly
Corion: VRat is infinite precision
Khisanth hmm
integral autrijus: oh, I am, I have a very nasty trick up my sleeve ;-)
autrijus integral++ # getting nasty with pugs
Corion autrijus: Yeah - I'll try to use that when (re)implementing getProcessTimes for Win32
... resp. I'll return Data.Ratio and let the upper levels worry :) 20:13
autrijus Ratio takes a param
VRat is Ratio for VInt 20:14
VInt is Integer
Corion Ewww. That means that Compat.hs needs to know about Pugs.Types, right? 20:15
autrijus no
you just return a Rational 20:16
you see, VRat is a synonym for Rational
how convenient :)
Corion ;)
autrijus type Rational = Ratio Integer
type VInt = Integer
type VRat = Ratio VInt
ergo, VRat =:= Rational
autrijus praises the power of syllogism
gaal Haskell also supports enthymeme, autrijus 20:17
minimal complete definitions.
autrijus indeed.
Haskell is a very reasonable language. 20:18
using Haskell is like having the power of Reason.
all bad guys listen to Reason.
(obscure Snow Crash reference)
gaal acknowledges that, and also notes this is why it sometimes looks Greek to him
i got the reference :) 20:19
ninereasons someone will have to pick up that quote, for sure: <autrijus> using Haskell is like having the power of Reason.
gaal and mine was an obscure reference to Aristotle
but not PM's aristotle
autrijus ninereasons: just throw it to QuotesPage
# haskell.org/hawiki/QuotesPage
I'm sure shapr will appreciate that
I got that too 20:20
seems passing by reference is quite efficient around here
Corion Hmmm. How do I declare my types? I have "data FILETIME = CULLong", but ghc complains later that it can't match Expected: CULLong against Inferred: FILETIME 20:24
Maybe I should just banish my intermediate type and hope for the best ... 20:25
iblech Corion: (foo :: FILETIME)? 20:27
integral wouldn't you want: data FILETIME = CULLong CULLong, or s/data/newtype/, or type FILETIME = CULLong ?
autrijus type FILETIME = CULLong 20:28
Corion autrijus: Aaah - "type", not "data" ...
Maybe I should do some of the exercises again ...
autrijus type is a simple alias 20:29
data is a tagged union
Corion Aaaaah
autrijus and newtype is a tagged union that only has one constructor.
(oversimplifying a lot)
Corion autrijus: Oversimplifying is good! :)
autrijus so newtype is more like just a simple box label that will always be compiled away 20:30
Aankhen`` Hrm. 20:33
Our CGI.pm has some parameters switched around.
Is it okay if I fix it so that we're as backward-compatible as possible?
Corion Haskells power is really cool - the different type for the times values just bubbles upwards without problems ;) (except in the implementation, but that's secondary :) )
Aankhen``: People should use named parameters anyway, but it should either do sanity checks or have them the same. 20:34
Aankhen`` That's a yes, then?
Corion Aankhen``: But you might want to discuss that with the respective author - maybe there is a reason.
Aankhen`` Hrm, that's right.
gaal forum2.org/gaal/pugs/smoke-xp.html # i'll get parrot included in a bit
Aankhen`` Ovid doesn't seem to be around...
autrijus? 20:35
autrijus yo Aankhen``
Aankhen`` Hi.
autrijus Aankhen``: sure, switch around, write more detailed commit log, earn more ++s
and check a bit that examples/memory_game still runs
which is important (kind of) 20:36
Aankhen`` Heh, okay.
Corion Hmmm. What should the clocksPerSecond() thing in Prim.hs be? Should that go into Compat.hs, because under Win32, it could become 10 million, while it currently is 1 million... 20:39
(I could also fix getProcessTimes to return the values divided by 10 already :) ) 20:40
autrijus nono 20:41
just move it to compat where it belongs
Corion autrijus: Willdo - except that Win32 maybe has different timer resolutions, but I'll see that through the breaking tests :) 20:43
autrijus Corion: you can have a different clocksPerSecond for the win32 part and posix part
Corion autrijus: Yes, but I think that Win32 itself is inconsistent :) 20:44
... because time() works, and times() returns something different. We'll see.
gaal ooh, precedence bug, i think: 21:02
my $handle = $r ?? $fh1 :: $fh2
where $r is Bool
pugs: cannot cast from VBool True to Handle 21:03
autrijus weird. it looks okay here
what if you put () around $r??:: ?
gaal happens to me in both win32 and linux
autrijus that part can't be platform dependent :)
gaal :)
looks like it's helping 21:04
hmmm, but i think it evaluates to a reference to the handle? 21:06
Aankhen`` Was temp() implemented? 21:07
gaal no, my bad
Aankhen`` Ah, okay.
gaal it isn't.. but sometihng's still strange
Aankhen`` No worries, can always work around it. :-)
gaal er that was to autrijus :) 21:08
Aankhen`` Oops.
Aankhen`` runs to his code.
Corion What units does time() return nowadays? 21:11
revdiablo floating point seconds 21:13
Corion Hmmm. Still seems to be seconds (floating)... Weird ... 21:14
revdiablo isn't that what it's supposed to be?
Corion revdiablo: No, I'm hunting bugs in my code :)) 21:17
revdiablo ah, ok. I'll go back to my lurking corner. :)
gaal finally: openpipe. 21:23
svnbot6 r3836, gaal++ | First step at Standard Prelude: &openpipe primitive in Perl 6
r3836, gaal++ | (which should be renamed to Pipe::open once namespace bugs are fixed)
gaal now tests can use fewer temp files :) 21:24
Corion Hmmm. Are while() loops broken? 21:28
Aankhen`` Hrm, I will have to commit in the morning.
Don't nobody break CGI in the meantime. :-P 21:29
G'night.
gaal worksforme Corion: my $i = 10; while $i-- { say $i } 21:30
Corion gaal: Yeah - I'm trimming it down - it seems related to time() ... Or something ...
gaal by the way, isn't it a bug that "my $i = 10" evaluates to undef?
Corion I'm stupid - I got the expression wrong ;) 21:31
gaal in pugsi, at least
or pigs
or whatever we're calling it now :)
Khisanth hogs
gaal i just noticed README says: "Running all tests unfortunately requires a lot more memory (perhaps 1000M)" 21:38
did someone see this happen?
japhy so. there's been a bunch of updates to apocalypse 5... 21:51
there are "capturing assertions" and "non-capturing assertions" 21:52
this is rather esoteric.
wolverian the A05 on dev.perl.org is still the dec 2004 vesrion 21:56
version, rather
vcv-- where at japhy? 21:57
mugwump try svn.perl.org/perl6 21:59
autrijus also try S05 :) 22:00
mugwump heh, true. how goes it, autrijus ... up late or early? 22:02
mugwump looks at the backlog
hmm there's the answer
wolverian both A05 and S05 on svn.perl.org/perl6/doc/trunk/design are from dec 2004 22:03
japhy what's the most recent A05?
wolverian (at least they claim they are.)
japhy if not the Dec 2004 one? 22:04
and the synopsis isn't what I'm after
I need to read the whole thing so I have a complete set of characters and tokens
wolverian I thought you knew that; you did say there had been updates :)
or did you mean that there are new rules that are not yet written down in A05?
japhy well, if there's a more recent one, I need it
I don't know if there's new stuff. since the Dec 2004 A05 22:05
if there's a more recent version, I need to know where it is
autrijus ok. the deal is A* is no longer updated 22:06
all updates will be inS*
S*
and damian's new capturing semantics is the first part of S05 updates
that will eventually be committed to svn
but I'm not sure how soon
so you'd need to prod p6l a bit to gauge the current status 22:07
I don't have more info than you -- I'm not in the cabal either :)
japhy ok.
I have to say, the weirdest thing is the **{n..m}
WTF, mate?
Corion Only people hating Perl5, like Shlomi Fish, get to be in the cabal! 22:08
vcv-- The only people who hate Perl5 are those who do not understand it. 22:09
autrijus er, no.
Corion vcv--: How true :)
autrijus I know of people who knows perl5 and hate it :)
integral it's more perl5 that's hateful than Perl5 22:10
autrijus right!
perl5 sucks a lot.
Perl5 is generally okay.
kelan they know it
but they do not understand
hows that for zen!
autrijus hm, is Juerd's server online?
I think I'll redirect perlcabal.org there.
(!)
integral thought he was still at the Knoppix stage 22:11
vcv-- Well Perl5 only sucks now because of Perl6 ;)
ijoyce p5's object system sucks balls
vcv-- true
ijoyce hard
integral nah, it's not the object system, it's not having a proper record type 22:12
autrijus p5 has an object system?
I missed it
integral there's little wrong with having a bless primitive...
ijoyce exactly
mugwump huh? What's a *SV if not an object? :)
integral a monstrosity that makes perl5 hateful? ;-) 22:13
autrijus mugwump: it's a V :)
ijoyce quit being smart asses, you guys know wha I mean
wolverian I like perl5's OO. I just don't like its lack of syntax.
(enter Spiffy)
autrijus heh. ingy still has that Perl5i thing in his OSCON talk abstract 22:14
vcv-- I think it's time for some PHP bashing too...
autrijus I wonder what he will speak about it :)
wolverian Perl5i?
autrijus wolverian: before pugs started, ingy threatened to do Perl 6 syntax on top of p5 vm
because it seems p6 will never be there
wolverian ah, okay.
well, perl5 is fast, at least. 22:15
autrijus maybe I get to steal that name for the mixed perl5/perl6/parrot interpreter project
Corion & # getProcessTimes should now Just Work Everywhere 22:16
# Everywhere is in the Java.Everywhere monad :)
autrijus lol
Corion++ 22:17
Juerd autrijus: No, I want it online tomorrow
svnbot6 r3837, corion++ | getProcessTimes now really works on Win32. Added some tests, moved a constant out of Prim.hs into Compat.hs
Juerd autrijus: (Original planning was Friday, and that's still the fallback if tomorrow for some reason isn't working)
afk
autrijus Juerd: ok. I'd like to assign perlcabal.org to that IP 22:18
I think it makes a lot of sense :)
ingy autrijus: I think ORA has my bio from 3 years ago 22:20
so I'm not surprised about perl5i
autrijus ingy: I thought you had a chance to submit a new bio
ingy I may still talk about perl5i anyway
autrijus really! what will you talk about?
ingy I'm not sure what i angle I can present a talk on pugs about 22:21
autrijus oh btw, I need to consult you with some strategy based on your mad Open Source Manager-fu
ingy I mean, every last detail will be rehashed by someone else
japhy ah ha. <foo> captures to $foo, <?foo> just matches 22:22
ingy so I will likely give a history and insiders view of how pugs gets developed
japhy FINALLY things are explained to me.
ingy autrijus: you are the heir to the OSM throne
the queen is dead 22:23
mugwump long live the queen!
autrijus ingy: ok. so it goes like this
I'm convinced that having $perl5_dbh in perl 6 programs is the #1 priority 22:24
I think I can do it by embedding pugs in-memory to a perl5 interpreter 22:25
and marshal object calls like I did with Language::MzScheme
so perl 5 is the main language, but you can transparently define perl 6 subroutines and load perl6 methods
vcv-- autrijus did i read wrong, or are you going to YAPC::NA this year?
autrijus s/method/module/
vcv--: I am
vcv-- and larry too ? 22:26
clkao huh? why not just perlembed? and have xs glue for calling back to code in pugs when needed
22:26 ingy is now known as php--
vcv-- php makes little kittens cry 22:27
22:27 php-- is now known as ingy
obra "encrypted php" 22:27
obra twitches
ingy what is $perl5_dbh 22:28
autrijus ingy: it's an object defined by running the "connect" method on the "DBI" package.
both defined in perl5
clkao: that is another route. and that's what I need consulting for
clkao: perlembed means marshalling Perl 5 API in Haskell 22:29
obra Wouldn't it be faster to just write a B backend to generate pure perl6 for native perl5 code and XS code?
22:29 obra is now known as troll___
vcv-- why couldnt YAPC::NA be down the street from me THIS year instead of last year? 22:29
troll___ oops. sorry
autrijus troll___: very trollish
troll___ should have /nicked first
22:29 troll___ is now known as obra
autrijus vcv--: hm? 22:29
clkao: but it also means that, once parrot backend is there, we'd need to always involve ghc as the binder 22:30
clkao: i.e. running the pugs program with linked in libparrot and linked in libperl and marshal calls inbetween
clkao: but if we do it the Inline::Perl6 way, we can precompile Perl 6 to PIR, and just involved libparrot and perl5 22:31
so GHC can be out from the equation
mugwump What about something IPC based?
autrijus so it boils down to whether it makes more sense to use Perl 5 + PIR modules from Perl 6 code, or to use Perl 6 + Haskell modules from Perl 5 code.
and I don't really know the answer. 22:32
vcv-- autrijus: last year YAPC::NA was at the University at Buffalo in New York, which is literally a minute away..down the streeet from me. then this year they get all the people id be interested in hear talking
ingy autrijus: my OSM-fu tells me if you want my opinion ask me in private when I have some time ;)
clkao autrijus: hang on
autrijus mugwump: opqaue objects don't generally survive IPC
ingy: ok :)
ingy autrijus: I'll ping you in 36 hours
autrijus k
clkao marshalling perl5 api in haskell... no, you do it in c, and make haskell wrap that piece of code
should be trivial.. and i bet you can make use of the perl_call stuff in libsvn_swig_perl i wrote 22:33
ingy autrijus: er, more like 18 hours, sorry
autrijus: fyi, I still see value in the perl5i marshalling api I was shooting for 22:34
clkao hate marginal network
obra ==clkao
clkao: make sky give you a 3G card
ingy anyway, need to run... 22:35
clkao summon sky
ingy &
autrijus clkao: I do what in C? 22:36
clkao: I still need to link in libperl no?
clkao yes
autrijus oh but you mean a saner API level
better than perlapi
just for object marshalling
clkao autrijus: see libsvn_swig_pl 22:37
autrijus but why would I do that in C?
I don't even know C.
clkao hang on
svn.collab.net/repos/svn/trunk/subv...gutil_pl.c
see svn_swig_pl_callback_thunk 22:38
make a little libray that export similar entry to perl for you to use in haskel
autrijus oh wow! 22:39
callconv in p5!
how did I miss that?
clkao because you didn't love me anymore
autrijus heh
clkao sadly im a perlembed expert. it's more sad that i'm sad about it. 22:40
autrijus hm. and that looks like totally swig independent
autrijus feels a bit more convinced to try perlembed
but do you think it makes sense, strategically speaking 22:41
to encourage people write Perl 6 and reuse perl 5 libraries
clkao yes. only one part is missing if you take this route
autrijus instead of encouraging people mixing in some perl 6 in their perl 5 programs?
clkao we can do both. but the former is more usefuly to me
while there are lots of bricks in perl5, we can start use perl6 to assemble them. 22:42
autrijus so p6 as glue is better than p5 as glue? 22:43
clkao as assembling is mainly what people do with perl. so they now have a cleaner way, without all those nice bricks
er
withouth throwing away
autrijus strangely that makes some kind of sense
ok. so what part is missing?
(and I don't think we have tuits to do both)
(as the marshalling involved is quite different)
clkao what's missing should be in one side of ffi 22:44
autrijus ffi doesn't handle vararg currently, btw.
clkao can you do lower level call to c without ffi
we take the arg typemap from ffi.
autrijus sure can.
I mean, GHC compiles to C.
clkao and invoke the vararg directl.y
*nod* 22:45
autrijus so you can inline arbitary .c
clkao so thats why i think it's doable.
just the data needs to be properly typemaped
autrijus hm. 22:47
ok. so we do what I did in par/myldr/main.c
that is a custom xsinit code
that installs additional callconv functions 22:48
which includes HsTypes.h
and do unpacking on the C side
neither p5 nor haskell knows about this
from their POV it's just a couple callconv functions
that solves p5 objects in p6 space
clkao install callconv to what?
autrijus what about the other way?
install callconv to call into perl5 22:49
but if there's a p6 obj in p5 space
we can certainly tie it up and overload it for all operators
clkao i think just support simple types, coderef, wrapped blessed thing that invokes properly 22:50
autrijus but how to invoke back is the questoin
we need call_perl6 visible from p5 space
that's what the xsinit code need to do... install extra Interals:: functions 22:51
Internals::, even
I'm worried about this
clkao give me an example
autrijus sure
use_perl5 DBI;
my $p5_obj = DBI.connect("..."); 22:52
my $p5_hash = $p5_obj.selectall_hashref(...);
actually, make that 22:53
clkao damn, you are getting old, type faster!
autrijus my $p5_array = $p5_obj.selectall_arrayref("Select * from foo", { :AutoCommit }));
ok, that's all
ijoyce_laptop use_p5 DBI; 22:54
autrijus no, I'm maintaining several threads of talk ;)
clkao these seem simple
make something like a callback in perl6
autrijus: damnit, take the next flight and we can do this in 4 hours 22:55
autrijus clkao: heh.
why don't _you_ take the flight to APW ;)
clkao BECAUSE I NEED A FUCKING VISA 22:56
and if you make any appointment now for that you are very lucky to be interviewd in JULY!
mugwump you need a VISA for fucking? does that depend on the nationality of the bird?
autrijus aw wtf. you don't have those euro visa thing?
clkao mugwump: thank you! 22:57
autrijus: anyway. let me talk and see if it makes sense
autrijus ok. 22:58
so line by line. 22:59
clkao autrijus: on use_p5 DBI, perl6 has an "evil5" object DBI. any call to that goes to underlying evil c callconv, with CALL_METHOD and arguments mapped to simple types or evil6 objects
autrijus but DBI is just a namespace!
clkao make it magic! you can invoke something on it
autrijus so what we need to do is to actually load DBI in the libperl5
clkao sure.
autrijus and install a magical ::DBI that is actually a Perl5::Package obj 23:00
that pugs can do right now
clkao yes.
let me know if i should go on.
autrijus and that is very thin anyway
because a p5pkg is just a VStr.
go ahead
clkao so no problem with $p5_obj = DBI.connect("") line for its invoke and return value?
the return value is also a evil5 object 23:01
(as it's not a simple type)
autrijus wait
ther "..."
the "..." is a p6 VStr
we need to make it a SV right?
clkao yes. in callconv it's converted.
autrijus a simple SV str
because DBI->connect prolly can't handle overloaded p6obj
it's in XS and all
so strings needs to remain strings 23:02
clkao unless you want to play with mg
but people who do those thing should be able to rewrite dbi in p6
is that line cleared? 23:03
autrijus you need [OFF]
clkao why?
autrijus to clear that line :)
nvm.
clkao gr
autrijus go ahead
now the {:AutoCommit} thing
that was what I was referring to 23:04
because it's potentially not a simple hash that can be HV'ed
I mean of course we can do a .yaml call or the moral equiv
clkao so, the p5_obj.selectall_hashref is the same, invokes the CALL_METHOD on the evil5 obj
autrijus and unmarshal it in p5 space
the arg
clkao but the return value is quite simple type.
autrijus no, I mean the arg :)
the hashref that I pass in
that is very nonsimple
because a hash is a mutable structure
suppose I do
my %hash = :AutoCommit 23:05
$p5_obj_.selectall_arrayref("xxx", %hash)
$p5_obj.selectall_arrayref("xxx", %hash)
and further suppose that selectall_arrayref does this
my ($dbh, $string, $attr_ref) = @_;
$attr_ref->{AutoCommit} = 3; # destructive update!
that needs to work
otherwise we can't use compound structures 23:06
and that will need to invoke p6 primitives
mugwump sounds like you're making an argument that both ways need to work..
clkao you can make that work later.
for now
autrijus for now, p6 objs are fully serialised and not at all magical in p5land?
i.e. they are reduced to pure yaml streams? 23:07
clkao see svn_swig_pl_to_hash
autrijus I saw it
clkao and convert_hash
to make it work you just use mg to invoke p6 prim
use mg to invoke haskell callback for ffi to invoke p6 prim 23:08
autrijus but that part is very fuzzy
clkao like all other invocation of p6 obj that would happen in p5 land.
autrijus right, I'm not sure about that either
clkao no, the only unsure thing is the ffi part.
autrijus we don't yet have an arena
in pugs
so you can't just load obj by id
I suppose we can add it, but it complicates things 23:09
clkao what obj by id?
mugwump what about making a perl 6 class which encapsulates Perl5 primitives, like Hash/Array/SV/Stash.. and provides methods to call macros etc on them
autrijus see, we have this $p6_obj
we pass it to p5_func
clkao you hold a reference to the underlying obj.
autrijus now in p5 land
clkao mugwump: we are talking about the other direction
autrijus we invoke $p6_proxy_obj->foo
now we resolve that
in swig's case it's trivial
because there's always a underlying Ptr 23:10
right?
clkao you don't have such thing in haskell?
autrijus we do
but that means creating a stablename for each obj
clkao no!
autrijus heh. without that GHC will GC it away! 23:11
clkao if you implement something in ffi, how do you refer the coderef you passin?
autrijus you create a StablePtr
and mark it as foreign export
the point is we are dealing with two GCs
GHC's is generational
Perl5 is refcounting
clkao so what do you see in Cl and?
land
autrijus in C land it's just a *HsPtr
generic 23:12
the point is that we need to mark it as out of reach by normal GHC GC
clkao ok. how od you invoke that hsptr from ffi ?
autrijus you cast it as a funptr.
its signature needs to match the foreign export signature.
and it will magically work.
I don't know how :) 23:13
clkao work as in... gets back to pugs just properly?
autrijus let's talk in code ;) 23:14
foreign import ccall "wrapper" mkCompileCallback :: ParrotCompilerFunc -> IO (FunPtr ParrotCompilerFunc)
type ParrotCompilerFunc = ParrotInterp -> CString -> IO ParrotPMC
compileToParrot :: ParrotInterp -> CString -> IO ParrotPMC
... haskell function ...
that's the haskell side.
clkao but i write no haskell. but i have a feeling that the other magic besides eval will help in this
autrijus never mind then. assume we have a generic $p6obj in p5land 23:15
we do
$p6obj->meth($arg1, $arg2, $arg3)
we need to have something FFI exported like 23:16
invoke_perl6_method(ObjPtr $obj, Str $methodname, ArgPtr @args)
where each ArgPtr is a union type that may contain pure values
or other ObjPtr
makes sense? 23:17
clkao *nod*
autrijus the point is that the callconv can't be variadic... it needs to always go thru an array
clkao that's the magic i was talking about
"apply"
interestingly i'm wearing the purple tshirt
autrijus heh 23:18
mugwump I have to wonder if making it look like Perl 5 objects exist in Perl 6 is trying to be overly clever at this point... I do think that the language is powerful enough to do this all in Perl 6 with a decent Perl5::Interpreter.pm that supplies opaque Perl 5 objects and lets you make perlapi calls on them via methods..
eg, my $perl5 = Perl::Interpreter->new();
autrijus mugwump: perlapi calls! you know how many there is?
clkao bwahaha
mugwump sure, but each is fairly simple, surely 23:19
You'd have to explicitly create Perl 5 objects to receive return values from calls
autrijus sure. but say we have them
now what?
we have gv_fetchmeth_autoload
mugwump my $perl5_sv = $perl5.newSV;
autrijus er, you can't do that 23:20
you have to do
$perl5.dSP;
$perl5.ENTER;
$perl5.SAVETMPS;
$perl5.PUSHMARK($perl5.SP);
before your newSV can be called
that way lies insanity
clkao: ok. so the C level is: 23:21
* Converting P6 native types to P5 SVs
* Convert P5 SVs to P6 native types (but only for SVs without SVMG and not SVRV) 23:22
* For all P6 VObject types, take the stable pointer from FFI and manufacture a shallow SV that is of the correct class
hm. do we append perl6:: and perl5:: ?
i.e. is $perl5_dbh's class on the perl6 side still DBI? 23:23
there could be namespace clashes
but if that happens we're doomed at the class space anyway
clkao *nod*
autrijus so probably no prefix.
i.e. use DBI; use_p5 DBI;
# already doomed
clkao anyway.. this can be worried after something works
autrijus right.
* For all SVRVs, invoke a special wrap_object FFI export
passing in the SVPtr and get back a VObject ptr 23:24
and use it in pugsspace
then we only need to handle method calls and coderefs.
what about overload? don't worry about it for now?
SvMG that is
clkao don't worry about it
autrijus $perl6_object + 1;
ok. people relying on that deserves to be shot, right?
clkao overload in p5 is buggy anyway
autrijus so no IO::All in p6 ;)
clkao hate 23:25
autrijus sad, because I did make Math::Complex work in MzScheme
but MzScheme is much easier to target ;)
clkao ha. so, how do i create p6 prim with ffi callbacks?
autrijus that's actually simple and done before
we do that in Pugs.Embed.Parrot
clkao ok.. i will have a look tomorrow 23:26
autrijus you just come up with anything and FFI can simulate it :)
clkao *nod*
autrijus you want to look at compreg
it's closest to what we're doing
Parrot_compreg in the parrot api
clkao parrot.hs ?
autrijus er, parrot source itself
but sure, src/Pugs/Embed/Parrot.hsc too 23:27
clkao where in parrot source?
autrijus I'll make xsinit work today
clkao: interpreter.h
not sure where the .c form is. grep a bit
<- doesn't even pretend to understand parrot's .c side
clkao i mean where does it call back to create pugs prim 23:28
autrijus oh. 23:29
no, it's not there at all. we need a compreg from pugs side too.
so you can hook arbitary code into pugs namespace.
anyway, I'll work on xsinit and revcallback now 23:31
just to make both side's eval"" work
since string is easist to marshall
I'm sure you can pick up there :)
clkao ya :_ 23:32
autrijus clkao++ # mmm expert
clkao so sad
autrijus and btw, you're wrong -- it's not that I don't love you anymore, it's that I don't love C anymore ;)
my relationship with C has evolved from love-hate to hate-hate. 23:33
clkao no.. i thought you never love c
autrijus well, I've loved some part of it by neccessity
but that neccessity has just went away
;)
clkao away with segfault
autrijus no, away with GHC, which is like GCC but without segfaults 23:34
clkao anyway, i'll see what you've done after shower
and decdide if i will stay up a bit
autrijus clkao++ # thanks. lots of fun 23:35
clkao++ # this is much more fun (to me anyway) than hacking SVN::Mirror ;)
or (gasp) VCP
japhy I'm coming up with an exhaustive list of Perl 6 rule syntax elements. once I *think* I'm done, I'll post it online and alert p6l of it. 23:38
once we have it down, I'll really be able to make my perl6 rule parser work
autrijus japhy++ # sanity! sanity! 23:39
japhy in between those two statements, I meant to say "if anyone knows of anything I missed, I'll add to the list"
I know damian's got his capturing schema coming out, but that's implementation, not syntax, right?
autrijus yup 23:40
japhy um, syn05 (version 7) doesn't mention the \c[...] syntax 23:41
but the corresponding apo does.
so I'm going to assume the syn just overlooked that. 23:42
I really should have gotten more involved 2 years ago
I'm a regex junkie. I would have left no stone unturned.
autrijus but really, without the syns, you and I can't easily involve. 23:45
and the syns are not ready until dec 2004 ;) 23:46
clkao autrijus: ok, have you got something? :)
autrijus (which is not too long ago)
clkao: yes. you know what dXSUB_SYS does?
clkao no
autrijus gah. it's a noop for all cases 23:47
wtf.
that's why I can't grep anything
because it's defined as null for all cases
so it's persumably there for some 5.005 compat
did I mention I hate C?
clkao ok.. show me the example for making a new number . like new_svIV 23:48
autrijus just a sec 23:49
oh, you can build pugs with EMBED_PERL5 meanwhile
er
env PUGS_EMBED=perl5
clkao i know
and it's wrong. you should be able to specify which perl
autrijus eh.
it's the perl that you run makefile.pl with 23:50
isn't that good enough?
it saves lots of trouble
clkao ah right :)
there's no test for p5 embed
autrijus right, write to write some?
ninereasons r3837 : src/Pugs/Compat.hs:208:21: Not in scope: type constructor or class `CInt'
autrijus ninereasons: os? 23:51
ninereasons FreeBSD 4.11
clkao there's nony leval_p5 ?
ninereasons autrijus, also debian 23:52
clkao eek 23:53
autrijus clkao: right, and it's currently
String -> IO ()
we need it to be
Stirng -> IO Perl5SV
clkao so how do construct new p6 num from c land?
autrijus or something like that, right?
clkao: you do this
clkao TRUNK IS BROKEN 23:54
autrijus clkao: wtf?
clkao what ninereasons said
r3837 brweaks it
i up'ed to previous
autrijus no, don't do that
r3838 fixed it... 3837 is ancient
clkao ok, what do i do?
autrijus your copy is 10 seconds ago 23:55
it's like eternity
ninereasons :_)
clkao 07:50 < autrijus> clkao: you do this
i mean this
autrijus oh ok.
clkao no, 3838 fails too
mugwump src/Pugs/Compat.hs:209:38: Not in scope: type constructor or class `CString' 23:56
svnbot6 r3838, autrijus++ | * unbreak trunk.
autrijus did I say r3838?
I mean r3839
but anyway. you do this
clkao kills autrijus
ninereasons whee :)
autrijus HsPtr* val = pugs_eval("1");
clkao no eval please 23:57
autrijus pugs_eval has the haskell side type of
String -> Eval Val
why not?
I like eval
clkao i like apply
src/Pugs/Embed/Perl5.o(.text+0x44): In function `r5Mz_info':
: undefined reference to `eval_pv'
autrijus your perl has no eval_pv?
or your perl is not shared libperl?
clkao sure it is 23:58
how do i tell itto be verbose so i can see how stupid it is when linking?
autrijus just "make"
clkao Linking ...
i want to see exactly what was happening
autrijus the first line of make does that no? 23:59
clkao rather than hateful ...
japhy w00t.
job interview on tuesday :)
autrijus oh. ghc -v4
hack makefile to replace ghc with ghc -v4
(warning: never tried)
and 4 may be overkill