Run Perl6 Now! | pugscode.org ('Overview', 'Journal') | pugs.kwiki.org | channel log: xrl.us/e98m Set by autrijus on 6 March 2005. |
|||
nothingmuch | *yawn* | 00:04 | |
nothingmuch goes to bed | |||
lucs | See ya. | 00:05 | |
nothingmuch looks at svn log and thinks he may be a bit trigger happy | 00:07 | ||
someone remind me to fix quoting.t and write smartmatch.t tomorrow | |||
lucs | Do we have a bot servant here? | 01:03 | |
nothingmuch | bot servant? | 01:14 | |
nothingmuch should shut up | |||
shower et al are done | |||
now covering up sofa with newspapers so cats won't give it a different color | |||
ciao | 01:15 | ||
lucs | Aren't you sleeping yet? :) | 01:16 | |
nothingmuch | well, sleeping depends on higene | ||
hygene | |||
and hygene depends on warm water | |||
and sleep also depends on a non-empty stomache | |||
and i am usually very very slow at going to sleep | 01:17 | ||
*poof* | |||
Darren_Duncan | Hello, is this thing on? | 01:19 | |
lucs | what? | 01:22 | |
Er, | |||
On what? | |||
Darren_Duncan | that answers my question - I've been on private with nothingmuch the last few minutes to hash that out | 01:34 | |
nothingmuch | shutup, i'm sleeping | ||
you're ruining my credibility | |||
;-) | |||
Darren_Duncan | yes, he's sleeping -- sshh | ||
lucs | :) | 01:35 | |
Darren_Duncan | ... for real in a few minutes | ||
to prove you're asleep, you must not reply to anything said here | |||
nothingmuch | Darren_Duncan: mark.stosberg.com/Tech/darcs/cvs_switch/ | ||
Darren_Duncan | back later ... | 01:50 | |
ingy | hola | 02:00 | |
MakeMaker is kicking my ass | |||
Darren_Duncan | how hard? | ||
ingy | not too hard yet... | 02:01 | |
hard for an amateur | |||
but I've been here before | |||
I will prevail | |||
and we will be able to write Perl6 modules | |||
Darren_Duncan | I haven't seen most of the uglies yet, since a very short WriteMakefile() has done what I need. | 02:02 | |
I still haven't written the missive on Perl6 modules naming that I was planning to send to the email list, but maybe I'll say a bit here first, if that's better. | 02:03 | ||
In brief ... | |||
ingy listens | |||
Darren_Duncan | 1. I agree with what was said here that Perl 6 code should be kept off CPAN for now ... | 02:04 | |
and just include it in the Pugs repository 'til we have time to do CPAn right | |||
2. I think that Perl 5 module names shouldn't be a limitation for Perl 6 ... | |||
We should be able to learn from the decade plus of actual modules that were put into CPAN as it currently is, to get an idea what kind of stuff actually gets made and used. | 02:05 | ||
The current perl 5 module organization is very ad-hoc, ... | 02:06 | ||
The main categories as they exist today were planned many years ago, when the major uses of Perl were a bit different ... | |||
ingy | I agree with both points. I also don't mind the ad-hoc ness | ||
lucs | s/ness/mess/ ? | ||
Darren_Duncan | Ad-hoc isn't bad per se, but let me finish ... | ||
ingy | I think policing the namespaces is futile | ||
hi lucs | 02:07 | ||
lucs | BOnsoir ingy | ||
Darren_Duncan | What I propose is a separate CPAN name space for Perl 6 modules, which starts out with zero names used or reserved ... | ||
No old module name is sacred ... | |||
ingy nods | 02:08 | ||
Darren_Duncan | The new one can still be ad-hoc | ||
But it will start over, with stricter entry requirements from the start ... | |||
Kind of what [email@hidden.address] is trying to do with Perl 5 modules, but that is hampered by all the legacy stuff ... | |||
With Perl 6, legacy stuff isn't a holdback right now ... | 02:09 | ||
obra | stricter entry requirements? | ||
mugwump | How about "has read and reviewed alternate solutions that exist on CPAN already" as a strict entry requirement :) | ||
Darren_Duncan | What I mean, is that to get a lock on a module name, you need to convince people that it should be used, rather than it just being yours by default | ||
obra | so you want to get rid of first come first serve? | ||
Darren_Duncan | This speech now is a draft, grammer isn't my biggest concern | ||
ingy | imo, much of the cpan mess could be untangled with metadata | 02:10 | |
Darren_Duncan | Some aspects of the current system are fine | ||
But if we start over, we should have some approval process for when the first person comes along and wants a "prime" name. | |||
mugwump | [email@hidden.address] | 02:11 | |
obra | I think this is something larry will really need to comment on | ||
Darren_Duncan | anyway, how I suggest we start off ... | ||
Examine what modules currently exist on CPAN, and pretend we have free reign to reorganize and rename them into more logical ways, not worrying about backwards compatability ... | 02:12 | ||
We don't have to do every module per se... | |||
mugwump | That's a mammoth task in itself, Darren. | ||
ingy | and a boring one | ||
rooneg thinks it sounds like a long, pointless argument just waiting to happen, for little gain | |||
Darren_Duncan | But essentially come up with, say, 50-100 categories that they could fit into, and or semi-formal schemes for grouping | ||
mugwump | But what about modules that don't fit cleanly into one category or another? | 02:13 | |
Darren_Duncan | That will be adapted to | ||
My main point is that things don't have the exact same categories as now just because that's the way it always was ... | |||
ingy | I am going to opt out of this can of worms for now, and go back to fighting MM | ||
Darren_Duncan | This can and should be done and agreed to as a community of course, though a few individuals can make suggestions to start off... | 02:14 | |
The suggestion doesn't have to be exhaustive | |||
mugwump | OK. First of all, I think that you need to remove the conceptual hard link between module namespaces and module "categories", whatever that means | ||
The names of individual modules need to be carefully considered, for sure. But too much emphasis on categorising by names leads to overly long package names | 02:15 | ||
rooneg | I really don't see what's wrong with the current scheme... The one thing I think is probably worth worrying about is a "land grab" effect when you open up the new namespace and people start running to stake a claim on top level useful sections of the namespace. | ||
Darren_Duncan | When I say "category", I mean that hierarchy you see on search.cpan.org | ||
mugwump | I agree that modules shouldn't be *indexed* (ie, automatically installable via perl -MCPAN -e'install Foo' without the module being announced | 02:16 | |
Darren_Duncan | Mainly I propose re-evaluating what the top-level namespaces are | ||
The new one could be loosely similar, but we can be free to "clean up" | |||
For example, move the DBI Drivers from "DBD::*" to "DBI::DBD::*, to more clearly illustrate their relationship to DBI. | 02:17 | ||
obra | darren, how long have you been involved with modules@ and the current module list? | ||
Darren_Duncan | I've been a CPAN contributor for almost 5 years now. | ||
obra | differerent question | 02:18 | |
mugwump | Darren, if you think about it - do you think that if the "categories" on the front of the CPAN page were actually generated from modules, each with seperate maintainers, that the *real* problems would be fixed? | ||
obra | I mean volunteering to help keep things sane. | ||
(by answering inquiries on modules@) | |||
mugwump | ie, the problems of not being able to see all the modules that solve a particular or related set of problems... | ||
Darren_Duncan | I'm just throwing ideas out there ... some that other people seem to agree with. | ||
If nothing else, the idea is that things would be as if [email@hidden.address] vetted all module names, and not just the newer modules. | 02:19 | ||
obra | Fear. That would imply that they'd have to approve every name. 95% of the time, they don't even acknowledge a request for namespace reservation | 02:20 | |
ingy | due to the nature of MM, putting perl6 modules in blib is problematic. does `blib6` sound reasonable? | ||
Darren_Duncan | Sure, groupings and lookup on the search web sites are a separate issues from actual module namespaces | ||
mugwump | sounds good to me, ingy | ||
Darren_Duncan | I think that part of the fear is because so many people are trying to get in, and there is some legacy cruft to deal with ... | 02:21 | |
ingy | unfortunately, a pugs `make install` installs perl5 *and* perl6 modules, which is making life hard for me | 02:22 | |
obra | Also, I thought that perl6 would allow us to have, for example, two entirely different versions of a module in use within a single program | ||
so, module names become much less important than distnames | |||
Darren_Duncan | I am at least hoping for the "good practice" namespace choices of the Perl 6 modules to be looked at like Perl 6 itself was, and consider fixing things. | ||
ingy | obra: distnames are articial too | ||
they aren't important | |||
obra | well, they'll still need to be unique for 6pan to not be terribly hurtful to build | 02:23 | |
ingy | say they are prefixed with ingy/Foo-Bar and obra/Foo-Bar | ||
Darren_Duncan | I consider Perl 6 module names to exist in a completely separate namespace from Perl 5 ones anyway, just as each is a completely separate namespace from Python or Ruby etc modules. ... | ||
Hence, a Perl 6 module "foo::bar" can be completely unrelated to a Perl 5 module with the same name, and programs in either language that include the module won't be confused ... | 02:24 | ||
By default, if you require "foo::bar", you'll get the one in the same language ... | |||
You require the one in the other language the same way you require, say, a Python module | |||
does that make sense? | |||
the 'require' has a namespace addition to specify language | 02:25 | ||
obra | unless transparently calling perl5 code from perl6 actually ends up being a requirement. | ||
Darren_Duncan | I hope that it doesn't | ||
While Perl 6 is itself quite similar to Perl 5, each should regard the other as if it were Python or Ruby etc | 02:26 | ||
mugwump | why? | ||
Darren_Duncan | that's simpler, isn't it? | ||
I'm just talking about linking | |||
ingy | Darren_Duncan: nobody says we're going to do things the same. almost everything will change. | ||
I plan on replacing cpan for instance :) | 02:27 | ||
Darren_Duncan | is that different than what I said? | ||
re replacing cpan? | |||
ingy | but you are talking in terms of cpan | ||
instead of thinking way beyond it | 02:28 | ||
Darren_Duncan | So you are starting more from scratch while I was talking about deltas? | ||
Is there still a need, in your new system, that the community coordinates what each person uses for their module names, so they don't conflict and group together nicely? | 02:29 | ||
ingy | probably not | ||
I need to know a bit more about perl6 namespacing | 02:32 | ||
Darren_Duncan | So then each person can name their module anything they want, and it won't cause anyone trouble? | ||
ingy | not from the dist sense | ||
Darren_Duncan | okay, I'll wait | ||
ingy | from the internals sense | ||
mugwump | read S10-S12 if you haven't already, Darren | 02:33 | |
Darren_Duncan | I'll review them | ||
mugwump | I see quite a few situations in which a module with the same name might potentially have multiple candidates; | ||
Darren_Duncan | even when those modules are unrelated? | ||
mugwump | 1. another programmer releases another version of a module without there being an official torch-handover | 02:34 | |
obra | Sub::Versive | ||
mugwump | 2. different production levels (live vs dev vs test...) | ||
Darren_Duncan | Take, for example, one person using "Db::Simple" for a general debugging module, and another uses the same for a database module ... is this a problem? | ||
mugwump | 3. programs *requiring* old versions of a module | ||
obra | it's unlikely anyone will want to compete with tim bunce for DBI::, but I can see different people doing a module called, for example, "Test" | 02:35 | |
Darren_Duncan | I'm hoping for at least a bit more controls in the community to prevent big namespace abuses. | 02:36 | |
mugwump | 4. two completely different modules that happen to be named the same | ||
One observation; | |||
Darren_Duncan | Eg, most existing modules use 'Db' for debug, but a largeish distro from 2000- uses it for databaase | ||
mugwump | - when you "use Foo", you are requiring an *API*, not a module | ||
that API might be provided from several places | 02:38 | ||
Darren_Duncan | Re DBI, sure, while nothing's sacred, we can probably assure that this is one of the few that stays with its previous owner | ||
If 'use' refers to an API requirement, do we need to register API names then, instead of modules, so several unrelated modules don't pick the same one? | 02:39 | ||
I see that as being loosely the same kind of problem | |||
obra | I think that "control" is one thing the perl community has been good at avoiding. | 02:40 | |
and that it's one of the reasons that perl has flourished. | |||
Darren_Duncan | It doesn't have to be strict. | ||
obra | what's the advantage of having "loose" control? making sure that unknowns don't grab "useful" namespace? | 02:41 | |
Darren_Duncan | I just mean having [email@hidden.address] (eg) type discussion prior to people uploading modules | ||
obra | but having it be required and having the group have to say "ok", If I understand you right. | ||
Darren_Duncan | 'control' as in 'more encouragement and feedback to developers as to what would be good descriptive names for their modules | ||
in the end, developers can still upload what they want | 02:42 | ||
as they do now | |||
maybe 'control' was the wrong word | |||
obra | so, you just want [email@hidden.address] to continue to exist? | ||
possibly, as a more open forum? | |||
Darren_Duncan | yes, I just prefer that every Perl 6 module use it, rather than just the newer ones | ||
obra | but what does "use it" mean? | ||
"Hi, I have a module that I call HatePerl. I'm uploading it!" 'that's a bad name, it should be Perl::Hate' "Too late, I uploaded it" | 02:43 | ||
Darren_Duncan | Unless I'm wrong, the earlier CPAN modules were created prior to the modules@ forum existing, ... | ||
obra | modules@ doesn't add much value | ||
most inquires get blackholed. | |||
Darren_Duncan | Okay, a replacement for modules@ that does what it was intended to do | ||
obra | and authors just upload anyway, without any feedback | 02:44 | |
rooneg | so you want people to ask modules@ before uploading, but you don't want to require aproval? i fail to see how this is any different from what we have today? nothing requires people to ask, and nothign requires people on modules@ to respond, so what have you gained? | ||
i'm not saying that something more strict is needed, but if the consensus is that it is, then you aren't going to change anything by saying "please do this, it's the right thing to do". | 02:45 | ||
Darren_Duncan | details aside, I hope that it would be easier for developers to get more feedback on their namespace choices early, prior to new legacy code being made that creates a lock on a name change | ||
mugwump | OK, I've put a little brainfart at svn://utsl.gen.nz/trunk/Guide, probably only lib/Guide.pod is worth reading, even though it contains completely unfinished sentences in places :) | 02:46 | |
Darren_Duncan | As I said, a fair number of modules have less than optimal names, at least by current standards, but they stay as they were because legacy code expects it | ||
mugwump | The idea is, that the "Guide::" namespace is for reviews and maps of CPAN | ||
the namespace remains in its current state of anarchy | |||
people who do research can put stuff in that namespace | |||
(ie, research into options on CPAN) | 02:47 | ||
There's also Review:: for individual module reviews, and HOWTO:: for task-oriented stuff | |||
obra | but I want to use Guide:: for tools for the blind | ||
Darren_Duncan | perhaps a better solution could be to have an elegant technical way for people to rename modules later, and old code not break ... | ||
mugwump wedgies obra | |||
Darren_Duncan | because something in Perl will automatically translate requests for the old module name to the new name ... | 02:48 | |
obra | actually, I believe there are symbol table alias modules in cpan now that will do that, darren | ||
Darren_Duncan | are they elegant and simple to use? | ||
obra | dunno. I've never renamed a module. | ||
Darren_Duncan | and old code doesn't have to be modified to employ them? | ||
obra | maybe it makes more sense to spend time on that question | ||
mugwump | So, anyway ... in these "Guide" modules (or whatever namespace is eventually picked, bearing in mind that namespace clashes aren't a problem per se), the One True namespace is mapped out... | 02:49 | |
Darren_Duncan | if this can be done elegantly, then the names people pick will become a lot less important, and anarchy can reign without problem | ||
mugwump | The only thing special about the "One True" namespace is that you don't have to "use lib" (or an equivalent) to specify it | ||
ie, make it a common practice that if you want to include non-"Core" modules, then you have to include a namespace administered by someone else | 02:50 | ||
Darren_Duncan | On the other hand ... | ||
mugwump | The terms are all a bit hazy there. So, you could go, 'use Namespace "DUNCAND"' or something like that | ||
Darren_Duncan | Perhaps it would be useful to maintain a FAQ-like document that works sort of like a standards committee ... | 02:51 | |
Pre-define some suggested namespaces for Perl 6 ... | |||
people can still do what they want, but if a lot adapt that suggestion, things can be much cleaner | |||
If such a document were made and worked on by the community now, before any Perl 6 modules exist, then it can be a lot more beneficial | 02:53 | ||
mugwump | or you could go, "namespace FreePAN;" to default to ingyful delights | ||
something like a meta-@INC | |||
Darren_Duncan | In any event, the new Perl 6 module collection should be free of abandoned modules and have a much higher signal-to-noise ratio ... at least for a little while | 02:56 | |
mugwump | the biggest problem is creating the map of cpan to use as a base for this new improved list, imho | 02:57 | |
mugwump re-reads dev.perl.org/perl6/synopsis/S11.html | 03:01 | ||
obra | the Versioning section is an interesting read | 03:04 | |
mugwump | sure is | 03:05 | |
obra | I'm pretty sure we can do that today | ||
mugwump | in pugs? | ||
obra | perl5 | ||
Darren_Duncan | still reading S11 | ||
obra | now I want that in perl5. badly | ||
mugwump | ok. one thing I think is missing in S11's versioning section is the implementation rules for what (Any) means... | 03:06 | |
obra | you mean a precedence? | 03:07 | |
I'd bet on "first in search path" | |||
mugwump | sure. Which is a nice system, especially if it's guaranteed that you can install modules to non-Perl locations (ie, not just site_perl) | 03:08 | |
it's simplicity and principle of least surprise may mean that it will be the final answer, | |||
obra | it should get specced, though | 03:10 | |
mugwump | This comes back a bit into the @INC problem that ingy's bashing his head against, too | ||
there is a *lot* of systems integration behaviour that needs to be covered by the design | 03:13 | ||
see also dev.perl.org/perl6/rfc/78.html | 03:26 | ||
Darren_Duncan | Right, so from what I've seen in S11, the Versioning section, it is easy enough to get rid of any technical problems from multiple individuals giving their modules the same name. | 03:27 | |
So then what I was discussing earlier just relates more to best practice suggestions for module names, to make them descriptive, evoke similarity in related modules, and dissimilarity in unrelated modules. | 03:28 | ||
mugwump | Again, I think that the amount of space in a module name is too short for that to work all the time | 03:29 | |
Darren_Duncan | Obra, I agree with wanting this Versioning feature in Perl 5. | ||
mugwump | tie @INC, 'Muahahaha' | 03:30 | |
Darren_Duncan | I haven't read the part where name size limitations are mentioned, will get to it ... | ||
obra | tied @INC is very doable | 03:31 | |
that wasn't what I had in mind though. to do thsi right, you need to do some deep symbol table magic | 03:32 | ||
"Tied symbol table" | |||
mugwump | tying stashes works, apparently - for some definition of "to work", that is | ||
multiple versions of the same module in memory at once is probably not a good idea right now | 03:33 | ||
But hey - there's nothing to say that Perl 6 features can't be backported to Perl 5 :) | |||
obra | -freenode2 mugwump, you know about only.pm, right? | ||
mugwump | no, I didn't. that is probably the most relevant Perl 5 module that relates to what we're talking about, I guess | 03:35 | |
obra | there's other stuff out there, but I don't recall where | ||
mugwump | that's ok, ingy's officially cargo cult afaik | 03:36 | |
looks like a decent enough API for Perl5 | 03:37 | ||
fayland | autrijus, can i ask u something about the translation work of Apocalypse. | 03:38 | |
obra | fayland, he'll see it when he wakes up. you should just ask | 03:39 | |
fayland | I'm Chinese. and I heard from hoowa that u guys are doing this work, i want to join. | ||
Thanks obra | |||
04:06
edgewalk1r is now known as edgewalker
|
|||
autrijus | greetings lambda camels. | 04:30 | |
autrijus finished backlogging | |||
needs to be at $client_site for $silly_meeting | |||
in an hour. | 04:31 | ||
autrijus tries to lift a finger and get off bed | |||
nothingmuch++ # absolutely fantastic rate of productivity | |||
obra | call in sick, autrijus? | 04:34 | |
autrijus | not going to happen | 04:35 | |
obra | :/ | 04:37 | |
autrijus sighs and starts to get up | |||
lucs | Morning autrijus. | 04:38 | |
Say, can you point me to which file(s) you needed to change to correct the int() bug please? (Just trying to get a handle on the code.) | 04:39 | ||
autrijus | sure | ||
AST.hs governs casting | 04:40 | ||
lucs | Oh, it was a casting issue? | ||
autrijus | yup, since int() is a caster | ||
like ~ and ? | |||
lucs | Ah. Thanks. I need to keep reading about Haskell :) | ||
autrijus | so "instance Value VInt" is the caster | ||
I just changed "round" to "truncate" | |||
lucs | Aha. | 04:41 | |
autrijus | so the block starting liene 16 reads: | ||
"to cast a VInt type into a Val, apply the VInt constructor to it" | 04:42 | ||
"to cast a Val into a VInt type, analyze its constructor: | |||
if it is a VInt, simply take its value | |||
if it is a VStr, try to read a int from the beginning of the string; if fails, yield 0 | |||
otherwise, cast it into a floating number, then truncate that number." | 04:43 | ||
clear as ink :) | |||
lucs | Er, right :) | ||
Hmm... Are you reading that in AST.hs? I don't seem to have such text in my copy... | 04:44 | ||
autrijus | I'm commenting on it | ||
the code is | |||
instance Value VInt where | |||
castV = VInt | |||
lucs | Oh, sorry, I thought you were quoting the code. | ||
autrijus | I didn't add any comments in the code :) if you'd like to start docs/src/AST.(kwid|pod), be my guest | 04:45 | |
lucs | Hehe :) | ||
autrijus | hmm nothingmuch is not here | 04:47 | |
but I know he backlogs, so here goes: | |||
lucs | He went to bed about an hour ago. | ||
autrijus | nothingmuch: I've set up pugscode.org/donate.html at your request; it's not linked from anywhere; it's just there to save you from programming WWW::Mechanize to do the same thing :) | ||
autrijus ponders whether linking to it from pugscode page is a good idea. | 04:51 | ||
but, work. & | |||
nothingmuch | morning | 05:44 | |
lucs | Wow. You didn't get much sleep, did you. | 05:45 | |
nothingmuch | no | 05:46 | |
= | |||
P | |||
nevermind, i had fun | 05:47 | ||
lucs | Heh | ||
05:52
Aankh|Clone is now known as Aankhen``
|
|||
Darren_Duncan | Okay, personal status report ... | 05:55 | |
1. I completed the rt.openfoundry.org registration | 05:56 | ||
2. Installed SVN and checked out Pugs. | |||
3. There is no #3. | |||
Fairly soon I'll upload the start of Locale-KeyedText under /ext, such as tomorrow. | |||
nothingmuch | Darren_Duncan++ | 06:03 | |
Darren_Duncan | les'un I'm confusing names, weren't you supposed to be in bed? | 06:04 | |
nothingmuch | time to go to working | ||
as you can see by my typing, i've clearly slept enough | 06:05 | ||
Darren_Duncan | sounds good -- on my end, I was last talking to you around 17:30h; it is now 22:00h here, and *I* will soon go to bed | 06:06 | |
anyway ... | |||
svn seems easy enough to use so far | |||
nothingmuch started talking to you at 3:30 | |||
it's now 8:06 | |||
=/ | |||
svn indeed is rather simple | |||
if you know cvs, | 06:07 | ||
Darren_Duncan | my next step is to actually run the Pugs program, which I haven't done yet ... | ||
nothingmuch | get the GHC binary on mac | ||
it tends to work the best | |||
Darren_Duncan | I see you stayed up late ... I'm up 'til 3am sometimes, usually just to 1am though | ||
Oh yeah, actually I downloaded GHC yesterday | |||
just have to install and run it ... or just run it | |||
nothingmuch | well, good luck then | 06:08 | |
anywho, i have to go to work | |||
see you when i get there | |||
Darren_Duncan | right then | ||
is your work connected with this? | |||
nothingmuch | no | ||
that's why i stay up till 3 am to work on hobbies | |||
since at work i must do other things ;-) | |||
err, 4 am | |||
Darren_Duncan | I'm on the verge of starting my own business, and so "this" plus work are connected | 06:09 | |
gotta do what you love | |||
nothingmuch | indeed | ||
nothingmuch doesn't see himself starting a carreer in sw engineering though | |||
academia... math & linguistics | |||
Darren_Duncan | what do you do then? | ||
or maybe you answered that | 06:10 | ||
nothingmuch | maybe make extra playing at some sleezy nightclub | ||
and writing screenplays every once in a while | |||
oh well, we'll see | |||
my whole life is ahead of me | |||
ride is here | |||
*poof* | |||
ingy | autrijus: ping | 06:39 | |
Darren_Duncan | ping ping ping | ||
maybe this was already said, but on my first install of Pugs just now, the Makefile gives a missing file error: t/op/assign.t | 06:40 | ||
lucs | Yeah, it's just an error in the MANIFEST. | 06:45 | |
Darren_Duncan | I think I know what needs doing ... is it fine if I make this MANIFEST change as my first commit? | 06:46 | |
Regarding revision 483, it looks like t/op/assign.t became t/syntax/decl_vs_assign_prec.t ... maybe. | 06:47 | ||
lucs | Yes. nothingmuch did that. | 06:48 | |
Darren_Duncan | The change note said assign.t was moved to syntax, and this is the most similar looking file name. | ||
nothingmuch is currently on his way to work; he said he would check in on arrival but no comment yet; he left home 39 minutes ago | 06:49 | ||
do you see any problem if I perform this MANIFEST change? | |||
don't want to step on someone else's section | |||
ingy | it's a MANIFEST for fook sake | 06:50 | |
just commit it if you want | |||
Darren_Duncan | just being cautious, but I'll go ahead | ||
nothingmuch works now | 06:57 | ||
lucs &#ZZ | 07:05 | ||
nothingmuch | good night, lucs! | ||
lucs | Thanks, see ya. | ||
Darren_Duncan | right then, my first commit seems to work, r486 ... very trivial MANIFEST update | ||
more important stuff to go in later | 07:06 | ||
nothingmuch argues that make manifest should be used | 07:10 | ||
i wonder why it isn't | |||
Darren_Duncan | who knows ... to be honest, I didn't know that command existed ... just updated it manually this time, as with every other time | 07:12 | |
nothingmuch | dear god | 07:13 | |
s02 is giving me the heebie jeebies about quoting | |||
Darren_Duncan | I ran it now ... and it added 12 more files (actually 14, but I'll get rid of the .DS_Store ... or I'll add that to SKIP) | 07:14 | |
nothingmuch | always add to MANIFEST.SKIP | ||
MANIFEST should be in the VCS list of files never to add to revision control | |||
Darren_Duncan | I added .DS_Store to MANIFEST.SKIP, and a subsequent "make manifest" then deleted the 2 such lines the previous one added. | 07:18 | |
About your last comment, does this indicate something I should do? | 07:19 | ||
Don't see why, though, since distros need that file. | |||
nothingmuch | make manifest will do it properly | ||
'make manifest' should be part of the release making shell script | 07:20 | ||
in darcs it goes into 'darcs prefs predist "blah blah"' | |||
other VCSs prolly have other hooks | |||
the point is, you're supposed to be able to say 'sh make_dist.sh' | |||
Darren_Duncan | anyway, I'll commit the 2 updated files in a minute | ||
nothingmuch | and get a complete release, with correct version info, correct MANIFEST, SIGNATURE, META.yml | 07:21 | |
and there are good, reliable tools to do this | |||
Darren_Duncan | I know that "make dist" did the META.yml for me | ||
nothingmuch | my ($foo, $bar) = ("FOO", "BAR"); say "foo=-$foo- bar=-$bar-" | 07:25 | |
ugg | |||
Darren_Duncan | svn question ... | ||
nothingmuch | ask away | ||
Darren_Duncan | on asking "svn status", I got a line saying "? MANIFEST.bak"; do I need to do anything special to prevent this from being included in the commit; the .SKIP file mentions it, if that matters | 07:26 | |
nothingmuch | it won' | ||
rgs | It's not part of the working copy, so it won't be committed (as the ? indicates) | ||
nothingmuch | t be committed | 07:27 | |
it has no A at the begining | |||
that is to say, you did 'svn add' on it | |||
Darren_Duncan | okay | ||
I did not "svn add" it | |||
right, that's good | |||
okay, that commit is done; and I see you did one too | 07:30 | ||
nothingmuch commits like a madman | |||
in fact, 3-4 of luqui's commits from yesterday were patches i submitted =) | |||
Darren_Duncan | I'll add+commit the first Locale::KeyedText in a few days, after I've completed my current round of Perl 5 module CPAN uploads, and have more time to think about the details of Perl 6 | 07:31 | |
nothingmuch | good luck! | ||
note that we have many many missing features | |||
objects | |||
rules | |||
proper quoting | 07:32 | ||
it won't be easy | |||
Darren_Duncan | I don't expect the code to run the first time | ||
so it's now 23:32h here, I'll sign off and try to sleep at normal hours, see youse later | 07:33 | ||
nothingmuch | what I really really hope you do is write a test for every feature you want to use while you write it | ||
and also write unit tests for that module, making use of a broad range of features | |||
Darren_Duncan | my Perl 5 unit tests should, while I didn't test it, give 100% code coverage ... or maybe 98% | 07:34 | |
nothingmuch | well, good night! | ||
welcome aboard! | |||
Darren_Duncan | and I'm glad | ||
this is the closest to core Perl 6 development I've ever been ... previously I was hanging out in the database modules groups mainly | 07:35 | ||
... or the core list for SQLite itself, and having some influence there | |||
nothingmuch | morning luqui | 07:36 | |
luqui | evening nothingmuch | ||
Darren_Duncan | evening luqui | ||
nothingmuch | many tests for you to implement, if you feel like it =) | ||
a few bugs | |||
luqui | any requests? | 07:37 | |
Darren_Duncan | my "make test" says t/parser.t is dubious but yet "all tests pass" | ||
luqui | that's the kwid thing... weird | ||
Darren_Duncan | t/parser....v-strings are deprecated at t/parser.t line 1. | ||
Perl v6.0.0 required--this is only v5.8.1, stopped at t/parser.t line 1. | |||
BEGIN failed--compilation aborted at t/parser.t line 1. | |||
nothingmuch | r489 | ||
r487 (should be trivial) | 07:38 | ||
r484 | |||
get commented out things in r485 to parse, but perhaps be no ops | |||
luqui | trivial... I like the sound of that | ||
nothingmuch | what about r482? you were working on that yesterday | 07:39 | |
i guess it's just a matter of the allowed charset in what is an variable name molecule | |||
luqui | this morning, yeah... | ||
I couldn't get it | |||
nothingmuch | your morning, my yesterday... same thing ;-) | 07:40 | |
hoowa | good afternoon! | ||
Darren_Duncan | updated to r489, which said t/assign.t was added ... didn't you move it elsewhere in 483? | ||
nothingmuch | that's a different t/assign.t | ||
it checks an operation bug | |||
Darren_Duncan | I meant /op | ||
nothingmuch | the previous tested a parsing bug | ||
that happenned to have to do with assignments | |||
since that was moved to t/syntax/.... another file was added | 07:41 | ||
Darren_Duncan | ok, same filename, different reason | ||
nothingmuch | otherwise they would have been one file | ||
uhuh | |||
Darren_Duncan | "make test" on v489 gave same error | 07:42 | |
wasn't sure if your "r489" comment meant you fixed it or not | |||
luqui | uhh... it looks like ! is explicitly included in the list of characters to match | ||
I wonder why... | |||
nothingmuch | Darren_Duncan: perl Makefile.PL | ||
ingy | Darren_Duncan: did you check in a MANIFEST? | ||
Darren_Duncan | yes | 07:43 | |
to the MANIFEST | |||
nothingmuch | that should look for tests again | ||
ingy | It seems wrong | ||
nothingmuch | VCSing MANIFEST files /is/ wrong ;-) | ||
Darren_Duncan | that policy wasn't set by me | 07:44 | |
luqui | ahh.. autrijus added ! because of $! | ||
nothingmuch | oh, right | ||
i think that's a special case, not a general rule of how var names are allowed to be named, is it? | 07:45 | ||
luqui | right. that might be the only punctuation variable | ||
no, there's $/ also | 07:46 | ||
nothingmuch | $/ is still there? | ||
luqui | it's what I said $0 was earlier | ||
the match object | |||
nothingmuch | ah | ||
so what is $0? | |||
luqui | the first match :-) | ||
(it's zero-based now) | |||
nothingmuch | heh | ||
Darren_Duncan | that's more normal | 07:47 | |
nothingmuch | that's bound to make people cry | ||
it is | |||
Darren_Duncan | pfft | ||
nothingmuch | but the question is whether you're consistent with your past or others' | ||
nevermind, i prefer consistency over backwards compatibility | |||
Darren_Duncan | I do too | 07:48 | |
waaaay better that Perl 6 is consistent with itself than it is with Perl 5 | |||
nothingmuch | luqui: so, will var be now a punct | \w? | ||
luqui | hmm? | ||
nothingmuch | ruleVarNameString = do | ||
... | |||
luqui | ahh | ||
yeah | |||
nothingmuch | name <- many1 (choice [ wordAny, char ':', char '!' ]) | ||
should it be made so that name is either that, or that? | 07:49 | ||
luqui | hmm, $*!? | ||
nothingmuch | don't ask me | ||
=) | |||
luqui | let's say no | ||
so it's either $!, $/, or [$@%&]\w+ | |||
nothingmuch | uhuh | 07:50 | |
Darren_Duncan | okay, I'm really outtahere this time | ||
nothingmuch | ciao, Darren_Duncan! | ||
Darren_Duncan | same to you | ||
3 | |||
2 | |||
1 | |||
nothingmuch | ok, i'm moving that test into t/syntax/var_names | 07:52 | |
and also testing that $! parses, despite the fact that $fo!o does not | |||
luqui | okay, i just fixed it... running a test before ci | 07:53 | |
of course, $fo:o::b:ar still parses, and it certainly should not | |||
nothingmuch | oi oi oi | 07:54 | |
luqui | what? | 07:55 | |
nothingmuch | your comment | ||
it's ouchy | 07:56 | ||
luqui | fix committed | ||
nothingmuch | ok, i'm actually going to zap the change to t/op/string_interpolation.t and move it to t/syntax/varnames.t | 07:57 | |
with a test for $! is ok, $f!ao is not, and $fo:o::b:ar is not | |||
the latter todo | |||
luqui | okay | 07:58 | |
nothingmuch | and for $/ too, as todo | ||
luqui | I made $/ parse | ||
but I don't think it means anything yet | |||
nothingmuch | hmm | 07:59 | |
it's not parsing | |||
i think | |||
or maybe that's because it's undefined | |||
luqui | yeah it's parsing, it's just undefined | ||
nothingmuch | ok | ||
luqui | you might be able to declare it an assign to it. | ||
nothingmuch | ok((eval 'my $!; 1'), '$! parses ok'); | 08:00 | |
ok((eval 'my $/; 1'), 'as does $/'); | |||
how will that handle if these become undeclarabe? | |||
they pass now | |||
luqui | it'll probably die | 08:01 | |
but we'll cross that bridge when it falls over | |||
nothingmuch | morning larsen! | ||
larsen | Good morning. | ||
nothingmuch | i'll leave string_interpolation.t in place, i think | 08:02 | |
regression can't hurt | |||
if some day the logic for interpolated and non interpolated var name parsing is split, this can serve as a sanity check | |||
luqui | good | 08:04 | |
nothingmuch | now back to t/op/quoting.t | 08:05 | |
yuck | |||
luqui | umm, the first test in quoting.t is wrong | 08:06 | |
nothingmuch | yup | ||
ingy | I WON!! | ||
luqui | really!? | ||
nothingmuch | won what? | ||
luqui | the race? | ||
ingy | I beat MakeMaker | ||
luqui | oh | ||
nothingmuch | Beat it? | 08:07 | |
ingy | perl6 modules are installable now | ||
luqui | schweet | ||
nothingmuch | ingy++; # all though i don't really know what happenned ;-) | ||
ingy | nothingmuch: obviously you've never wrestled with MakeMaker | ||
nothingmuch | never | 08:08 | |
not going to either | |||
ingy | I have Test.pm in ext/ | ||
nothingmuch | unless i get paid, like, $200 an hour | ||
ingy | as a regular Perl6 module | ||
and it still gets used properly for pugs tests | |||
luqui | very nice | 08:09 | |
ingy | and then gets installed properly | ||
I also wrote Pugs::MakeMaker in ext | |||
for 3rd party perl6 modules | |||
drop in replacement for ExtUtils::MakeMaker | 08:10 | ||
I need to clean up a bit then checkin | |||
nothingmuch | wow, we have <word word2>! | 08:13 | |
coolness | 08:14 | ||
beh | 08:22 | ||
nothingmuch can start weekly build at work | |||
pugs is going on hold,, | |||
want to see quoting.t so far? | |||
larsen | does 02atoms.t need a plan ? | 08:26 | |
nothingmuch | i bet it does | 08:28 | |
larsen: are you a committer? | 08:37 | ||
larsen | no | ||
nothingmuch | sign up at openfoundry.org | 08:38 | |
ingy | perlbot: seen autrijus | ||
nothingmuch | perlbot seen autrijus | 08:39 | |
beh | |||
Khisanth | perlbot does not have such a function | ||
nothingmuch | info says idle: 3 hours 39 minutes | ||
larsen: | 08:40 | ||
rt.openfoundry.org/Foundry/ | |||
wolverian | wolverian@chronoa:~/code/remote/pugs$ svk | 08:42 | |
Weak references are not implemented in the version of perl at /usr/share/perl5/PerlIO/via/dynamic.pm line 61 | |||
ouch. | |||
nothingmuch | 5.005_3? | ||
wolverian | 5.8.4 | 08:43 | |
larsen | nothingmuch: I'm registered | ||
wolverian | this is on ubuntu; trying debian now. | ||
larsen | but I esitate to begin committing 5 minutes after my first checkout | 08:44 | |
nothingmuch | larsen++ | ||
if you have input, why not? | |||
no one will shoot you if you make an error | |||
nothingmuch.woobling.org/pugs/t/op/quoting.t | 08:49 | ||
joejiang | help | 08:56 | |
08:58
sorje_ is now known as sorje
|
|||
cls_bsd_ | 1/1 skipped: No Kwid parser yet | 09:02 | |
ok, sync again | |||
nopaste.snit.ch:8001/2001 # hmm | 09:05 | ||
wolverian | okay, svk works on debian. :) (I have to ask someone why ubuntu's perl doesn't have weakrefs..) | 09:16 | |
interesting, ghc on debian sid depends indirectly on gcc-2.95 | 09:27 | ||
that is pulling in too much on this poor old computer :) | |||
ingy | hola | 09:28 | |
is pugs repos down again? | |||
wolverian | works here. | ||
ingy | hmm. worked 2nd time | 09:29 | |
stoopid intarweb | |||
fayland | is autrijus here? | 09:30 | |
ingy | no | 09:31 | |
fayland | when will he come back? | ||
ingy | I don't know | 09:32 | |
fayland | o, Thank u anyway. | ||
ingy | ok | ||
huge patch incoming.... | |||
anyone around to test? | 09:33 | ||
fayland | me. | ||
ingy | ok good. give me a couple minutes | ||
fayland | fine.:) | ||
ingy | fayland: still there | 09:49 | |
492 committed | |||
fayland | ya | 09:50 | |
ingy | Perl6 module support is here | ||
could you up and test for me | |||
fayland | ya, i'm just svn update | ||
cls_bsd_ | test? | ||
svk up -s | |||
oops | |||
ingy | what is -s? | 09:51 | |
ah... svk | |||
fayland | Simple::Module? | ||
ingy | ? | ||
Sample::Module | |||
fayland | o ,i see. | 09:52 | |
clkao waves at ingy | |||
ingy | hi clkao | ||
I just added module installation and authoring support to pugs | |||
the tests for Sample::Module fail because pugs can't use a multinode module, like 'use Foo::Bar' | 09:53 | ||
we now have Pugs::MakeMaker | 09:54 | ||
theorbtwo | Don't you need to quote that, or put a :: sigil on it? | 09:55 | |
fayland | perl makefile.pl? Cann't locate Pugs/MakeMaker.pm | ||
forgot to add path to lib? | |||
ingy | no | ||
fayland: you need to install pugs first :P | |||
fayland | ya, i install it | 09:56 | |
installed | |||
pugs test.t? | |||
ingy | where did Pugs::MakeMaker get installed? | ||
fayland | the svn folder | 09:57 | |
ingy | what? | ||
fayland | need cpan Pugs::MakeMaker? | ||
cls_bsd_ | No tests defined for Pugs::MakeMaker extension. | ||
No tests defined for Test extension. | |||
oops, wrong way | |||
ingy | gah, listen all | 09:58 | |
svn up; make purge; perl Makefile.PL; make test; make install | |||
fayland | make purge? what's that? i'm new to svn | 09:59 | |
ingy | gah... it's not svn | ||
it's a *make* target | |||
anyway, just do it | |||
fayland | o ,i use nmake , it don;t know 'purge' | 10:00 | |
ingy | make purge resets your dist | ||
deletes all the intermediate build files | |||
oh good, windows | 10:01 | ||
need to test this on windows | |||
fayland | and cd the modules/Sample-Module? | ||
then perl makefile.pl? | |||
ingy | did you do the other stuff? | 10:02 | |
fayland | no 'nmake purge'; | ||
no | |||
ingy | are you saying it doesn't work, or you didn't do it? | ||
fayland | Cann't locate the Pugs/MakeMaker.pm | 10:03 | |
when i perl makefile.pl | |||
ingy | nopaste pugs -V | ||
wolverian | perlbot: nopaste? | ||
perlbot | Paste your code here and #perl will be able to view it: sial.org/pbot/perl | ||
ingy | wolverian: did you test this patch? | 10:04 | |
nothingmuch | did anyone look at the quoting tests prototype? | ||
wolverian | ingy: no. give me a sec to up. | ||
fayland | :) I have to go to class. | ||
ingy | ok | ||
fayland | sorry. | ||
see u later. | |||
nothingmuch | can perlbot be convinced that nopaste for perl6 is different | 10:05 | |
ingy | teaching windows users is hard | ||
wolverian | few files are missing. | 10:06 | |
ingy | ? | ||
wolverian | it scrolled by already. MANIFEST stuff I assume. I'm on windows and I can't figure out how to make putty STOP THE SCROLLING while I try to look at the backlog. | 10:07 | |
(I want home already. :/) | |||
mauke | hmm, does ctrl-s work? | ||
wolverian | yes! thanks. | 10:08 | |
pasteling | "wolverian" at 80.222.110.168 pasted "missing files" (6 lines, 185B) at sial.org/pbot/7946 | 10:09 | |
wolverian | I don't know how important that is. :) | ||
mauke: how do I make it run again? help! :) | |||
pjcj | ctrl-q | 10:10 | |
mauke | ctrl-q | ||
wolverian | thanks. | ||
ingy | wolverian: fixed. thanks | 10:11 | |
wolverian | ingy: you're welcome. | ||
testing now. | |||
ingy | wolverian: what is your os? | 10:12 | |
wolverian | ingy: ubuntu hoary | ||
(not very special I guess.) | |||
autrijus | greetings /\camels... | ||
autrijus backlogging | |||
wolverian | greetings, autrijus. | 10:13 | |
ingy | autrijus! | ||
wolverian | when are we going to have real multidim arrays? :) | ||
autrijus | wolverian: sure, just a bit | ||
wolverian | all tests succesful. | ||
autrijus still reading logs | 10:14 | ||
ingy | wolverian: do a make install, and test modules/Sample-Module | ||
wolverian | failed | 10:15 | |
ingy | ? | ||
the tests failed | |||
but did perl Makefile.PL work? | 10:16 | ||
wolverian | yes. | ||
ingy | excellent | ||
when autrijus is back we can fix the problem with the tests | |||
wolverian: do a make install on Sample::Module | 10:17 | ||
what path does it install to? | |||
wolverian | Installing /usr/local/share/perl6/Sample/Module.pm | 10:18 | |
ingy | :) | ||
wolverian | nice. :) | ||
ingy | no collision with the perl5 version | ||
wolverian | it then adds itself to the perl5 perllocal.pod, which is a tad strange :) | 10:19 | |
ingy | yeah, well... | ||
it's all very rough at this point | |||
wolverian | getting there, though! nice. | 10:20 | |
ingy | autrijus: ping | ||
wolverian | I need to write a perl6 vim syntax file. | ||
perl5 syntax highlighting isn't very good for perl6. | |||
ingy | autrijus: I need to go to bed, can we discuss the patches quickly? | ||
rgs | wasn't luqui looking at this ? | ||
wolverian | rgs: vim? I don't know. awesome if he is. | 10:21 | |
autrijus | ingy: sure. | ||
rgs | wolverian: yup. | ||
ingy | did you read my checkin notes? | ||
autrijus | eclipse highlighting seems good enough | ||
reading | |||
wolverian | I wonder if he needs help. I'm not practiced in vim scripting but I want to help. | ||
autrijus: I'd like to highlight types and traits, at least. | 10:22 | ||
autrijus | looks correct. | ||
wolverian: *nod* that'd be cool | |||
nmake passed. doing nmake test | |||
ingy | basically we have ext for core modules and modules for other stuff, and we have Pugs::MakeMaker for perl6 Makefile.PLs | 10:23 | |
autrijus | passed. | ||
nmake install does something weird | |||
Installing C:\Perl\bin\pugs.exe | |||
Installing C:\Perl\site\lib\Pugs\MakeMaker.pm | |||
Installing C:\perl6\lib\Kwid.pm | |||
ingy | yep | 10:24 | |
autrijus | @*INC: | ||
./blib6/lib | |||
C:\perl6\lib | |||
(skipped a few) | |||
okay. maybe I'll use native separator | |||
i.e. .\blib6\lib | |||
but that's fine for now | |||
great work! | |||
ingy | it's still rough | ||
autrijus reading WritePugs() | |||
ingy | autrijus: now see what happens in module/Sample-Module | 10:25 | |
autrijus | ok. what's diff between ext/ and modules/ ? | ||
to me they look fairly similar? | |||
is modules/ non-core? | |||
ingy | ext is for core modules | ||
all the ext modules are installed when you install pugs | 10:26 | ||
autrijus | gotcha. already grokked. | ||
ingy | and they need the pugs framework | ||
autrijus | yup yup | ||
we totally need 6.0.11. | |||
ingy | modules/ modules are standalone, after pugs is installed | ||
autrijus | nmake dist produces | 10:27 | |
Sample-Module-0.01.tar.gz | |||
is it supposed to be correct? | |||
ingy | yes | ||
autrijus | larsen: you were seeking committer right? | ||
I thought it's all x.y.z now | |||
ingy | ? | ||
autrijus | 0.01 is barely legal | ||
0.0.1 maybe? | 10:28 | ||
ingy | sure, ok | ||
I didn't know this standard | |||
autrijus | S11 says that | ||
ingy | fine | ||
wolverian | hrm, allowing the , in 'sub foo (...) returns bar, is baz { ... }' makes it surprisingly much easier to read for me. | ||
I wonder if that is legal. | |||
autrijus | it is not. p6l. :) | 10:29 | |
larsen | autrijus: I just registered on openfoundry | ||
ingy | C:\perl6 should really be C:\Perl6 | ||
larsen | autrijus: I didn't anything so far | ||
autrijus | ingy: your sample-module put things to blib/lib | ||
not blib6/lib | |||
so "make test" fails | 10:30 | ||
bzzt | |||
ingy | autrijus: so does pugs handle two node modules? | ||
wolverian | autrijus: oh, it has been discussed? | ||
ingy | use Foo::Bar | ||
I thought that was the problem | 10:31 | ||
autrijus | it does of course | ||
ingy | ok fixing... | ||
autrijus | parser line 239: | 10:32 | |
names <- identifier `sepBy1` string "::" | |||
return $ App "&require" [] [Val . VStr $ concat (intersperse "/" names) ++ ".pm"] | |||
so it split by :: then join by / | |||
and add .pm | |||
again, clear as ink | |||
wolverian: no, I mean, "for discussion, post to p6l" | |||
wolverian | autrijus: ah, right. thanks. | ||
(I'm a bit scared about p6l. not wanting to look foolish and so.) | 10:33 | ||
autrijus | mmm lwall calls p6l is typically cluttered with "idle speculations" | ||
wolverian | well, that makes it easier for me. | ||
autrijus | so the comma suggestion should feel right at home. | ||
:) | |||
wolverian | okay, firing away. | ||
oh, and I still haven't written the pattern matching post, because I'm not at all sure on how to phrase it. I need to learn haskell well first, I think. | |||
autrijus | just YAHT is enough :) | 10:34 | |
ingy: also, while you're at it, change t/test.t to say 'require' not 'use' | |||
wolverian | I'm trying. :) | 10:35 | |
autrijus | larsen: so, you going to add a plan to 02atoms.t? | ||
(btw, you're a committer now; welcome aboard) | |||
larsen | autrijus: thanks :) | 10:36 | |
autrijus | :) | ||
larsen | yes that could be my first patch | ||
autrijus is still writing "Choreography Specificationdesign document for @crazy_clients | 10:37 | ||
will take another hour or so :-/ | |||
ingy: your makemaker foo is truly crazy. | 10:38 | ||
theorbtwo | Choreography? What is it that @crazy_clients does? | ||
autrijus | web services? | ||
REST protocols | 10:39 | ||
the document that describes how multiple web servers interact | |||
is called choreography spec | |||
larsen | nice choice of word | ||
autrijus | the W3C folks use that all the time | ||
ingy | autrijus: it was really hairy | 10:42 | |
autrijus: it was not easy to do, but I think it was a reasonable solution | 10:43 | ||
autrijus | yup. | ||
ingy++ | |||
ingy | =) | ||
I think perl6 modules outside of pugs core should build in blib, not blib6. But I'll use blib6 for now until I get the other parts in place | 10:44 | ||
autrijus | well | 10:46 | |
you can use blib | |||
and fix | |||
ENV->{PERL6LIB} | |||
to not say Q*t* | |||
q*t* | |||
ingy | right | ||
autrijus | but t, blib/lib, blib/arch | ||
which is cleaner. | |||
ingy | or support -I | ||
autrijus | is it currently using -I? | 10:47 | |
harness I mean | |||
ingy | not sure | ||
larsen | ok, done. I hope I didn't messed up things with svn | ||
autrijus | works. | ||
larsen++ | |||
ingy: I can add multiple perl5lib | 10:49 | ||
but you need to add pathsep to config. | |||
ingy | sure | 10:51 | |
I can do it all tommorrow | |||
I need to learn my haskell too :) | |||
autrijus: are you sure require Foo::Bar works | 10:52 | ||
i don't think it does | |||
unexpected ":" | |||
expecting word character, "-", ";", statements or end of input | |||
NonTerm "./blib6/lib/Sample/Module.pm" (line 1, column 14) | |||
autrijus | pugs> . require Test::Foo | ||
{{ App "&require" ('Test/Foo.pm') | |||
}} | |||
you sure you are using require? | |||
ingy | yes | ||
autrijus | don't use 'use' | ||
oh. | 10:53 | ||
fixed. | |||
committing | |||
ingy | pugs> require Sample::Module | ||
*** Evl: App "&require" ('Sample/Module.pm') | |||
*** Ret: *** Error: "\nunexpected \":\"\nexpecting word character, \"-\", \";\", statements or end of input" | |||
autrijus | yup. r496 fixes it. | 10:54 | |
sorry, was only checking the require site. | |||
wolverian | sent. damn, that was the longest mail I've written about such a small thing. | 10:56 | |
ingy | yay, it worked! | ||
autrijus++ | |||
autrijus | :) | ||
wolverian++ | |||
wolverian | thanks. :) | 10:57 | |
(if the importance/length ratio holds, my post about pattern matching will be roughly 300 pages long.) | |||
autrijus | lol. | 10:59 | |
wolverian | my main worry about the pattern matching in perl6 is that it would be so ugly, compared to haskell. | ||
(syntax-wise) | |||
I'd be happy with just being able to match constants in signatures, and leaving it at that, I think. | 11:00 | ||
(in addition to types, that is...) | |||
ingy | autrijus: could you retest windows with r497? | ||
I need zzzzzzzz. | 11:02 | ||
autrijus | looks good. | ||
ingy | does it do the C:\Perl6 thing? | 11:03 | |
autrijus | archlib: C:\perl6\lib | ||
ingy | :\ | ||
autrijus | letme purge | ||
now works. | 11:04 | ||
yay! | |||
ingy | you must have a fast machine | ||
autrijus | I have a x86. | ||
;) | |||
mmm Installing C:\Perl\bin\pugs.exe.bat | |||
autrijus wonders how to get rid of that | |||
ingy | ok, good night | 11:05 | |
zzzzzzzzzzz& | |||
autrijus | nite! | 11:06 | |
ingy++ | |||
autrijus dinner & | 11:27 | ||
metaperl | hey no absolute value function? | 12:17 | |
autrijus | abs() you mean? | 12:36 | |
nothingmuch | metaperl: i think it's broken sometimes, arith.t bails out if it isn't proper | 12:37 | |
autrijus | no, arith.t defines its own abs | ||
metaperl | I wrote my on abs because the builtin didn't work | ||
paste? | |||
perlbot paste? | |||
perlbot | Paste your code and #perl will be able to view it: sial.org/pbot/perl dragon.cbi.tamucc.edu:8080 erxz.com/pb | ||
autrijus | right. let me take that away. | 12:38 | |
metaperl | right here: www.hcoop.net/~terry/talks/p6-junct...lide5.html | ||
autrijus | abs() implemented. | ||
r499, enjoy | |||
it's just two lines: | 12:39 | ||
op1 "abs" = return . op1Numeric abs | |||
and | |||
\\n Num pre abs (Num)\ | |||
so, if people wish to add cos, sin and other math functions | |||
just copy and paste and commit (with tests!). | |||
nothingmuch | autrijus: two bugs | 12:40 | |
autrijus | yes? | ||
nothingmuch | look at the new and improved t/op/assign.t | ||
the old one was moved to t/syntax/decl_blah_prec.tsomethingorother | |||
autrijus | ok... ? | ||
sliced assignment isn't there, I'm aware of that | 12:41 | ||
nothingmuch | and the bottom of t/op/array.t | ||
also, two issues | 12:42 | ||
i think make test should be using 'prove -r t' | |||
and that MANIFEST should be 'make manifest'ed on each release | |||
and MANIFEST.SKIP versioned instead | |||
autrijus | M.SKIP is already versioned. | 12:44 | |
... | |||
shapr | ,,, | ||
really big semicolons? | |||
nothingmuch | whoops, hit cmd+q instead cmd+w | 12:45 | |
btw, you're on mac, right? | |||
autrijus | I could be. | 12:46 | |
i.e. not currently, but I have another G3 ibook | |||
my %hash = undef; | |||
will it make %hash contain (undef => undef) ? | |||
nothingmuch | subetha sessions could be fun occasionally | ||
autrijus | '' => undef I mean | ||
sure; I worked out Kwid parser with ingy via SEE | |||
nothingmuch | i have no idea | ||
metaperl | autrijus, there is a make install problem with 499 | 12:48 | |
pasted here: erxz.com/pb/515 | |||
perl Makefile.PL PREFIX=~/perl | |||
used to work with no probs | |||
now something is trying to write to /usr/lib | |||
autrijus | indeed. that's what I'm afraid. | ||
ingy changed lib lookuppath from /usr/lib/perl5/lib/Perl6/lib | |||
into | |||
metaperl | I dont have permissions for /usr | ||
autrijus | /usr/lib/perl6 | ||
metaperl | I am trying to install in my local home directory | 12:49 | |
autrijus | aye. you need to ping ingy for that | 12:50 | |
PugsConfig.pm needs to honour PREFIX= | |||
either that, or Pugs::MakeMaker needs to do that. | |||
for now, work in the local dir first. sorry. | |||
I'll get this cleared up before 6.0.11. | |||
hi trexy. | 12:51 | ||
nothingmuch wonders if anyone wants to help expant t/op/quoting.t | |||
there's lots of sysyphic work | |||
test that all the adverbs and short versions work | 12:52 | ||
test Ā«Ā» for shell quoting semantics | |||
autrijus | I'd like to help, but I'm fixing your other bug and try/catch instead. | 12:53 | |
t/op/array.......................ok | |||
1/40 unexpectedly succeeded | |||
nothingmuch thinks this good for someone starting out | |||
a chance to get familiar with new things | |||
autrijus | t/op/push........................ok | ||
5/27 unexpectedly succeeded | |||
nothingmuch | w00t | 12:54 | |
autrijus | nice. I think I'm doing many things correct. | ||
t/op/unshift.....................ok | |||
2/39 unexpectedly succeeded | |||
adding autovivification. | 12:58 | ||
anyone care to help me unTODO the tests in unshift, push and array.t? | |||
nothingmuch | i'll do it | 12:59 | |
autrijus | cool. sync up to r500 and see | ||
I'll bbiab. | |||
cls_bsd_ is doing >svk up -s .;make purge; perl Makefile.PL; make test | 13:00 | ||
t/op/array.......................ok | 13:05 | ||
1/40 unexpectedly succeeded | |||
nothingmuch | uhuh | ||
cls_bsd_ | t/op/push........................ok | ||
5/27 unexpectedly succeeded | |||
oh.. | |||
great, autrijus just pasted it ... | |||
nothingmuch | they need to be untotoed | ||
nothingmuch will get to it in 2 mins | |||
Limbic_Region | out of curiosity, did you or someone else fix the chop bug yet nothingmuch? | 13:08 | |
scw | nothingmuch: hello, in t/op/zip.t, the zip() is used as zip(@a; @b), shouldn't it be zip(@a, @b)? (As examples in S03) | ||
nothingmuch | luke said no | 13:09 | |
that's what i started with | 13:10 | ||
but he corrected me | |||
what is the chop bug? | |||
autrijus | greetings fayland! | 13:11 | |
sorry I missed you before | 13:12 | ||
scw: (@a, @b) flattens. | |||
nothingmuch: chop(@array) doesn't work | |||
since chop is currently only a Str op in Prim.hs | |||
just need to write up another implementation for List. | |||
fayland | hihi | ||
autrijus | hcchien: coordinate with fayland a bit? | ||
he'd like to do p6l10n/zh-cn/ | |||
Limbic_Region could have swore it was nothingmuch that pointed the chop( @array ) bug out last night | |||
fayland | ya, i heard from hoowa that u floks are doing the translation work? | 13:13 | |
autrijus | fayland: right: see svn.openfoundry.org/p6l10n/ | ||
Limbic_Region goes back to lurking | |||
fayland | ok. | ||
autrijus | oh, you can also start by fixing PA01 for me :) | ||
svn.perl.org/perl6/pugs/trunk/docs/...rview.html is just converted from trad. chinese | |||
so I'm not sure if the terms I use there is correct | |||
hcchien | sure, so fayland will take the zh_cn part? | 13:14 | |
fayland | wait a moment | ||
Limbic_Region hopes autrijus is feeling better | |||
autrijus | I am :) | 13:15 | |
fayland | have a phone. :) | ||
nothingmuch | it was me | ||
who noted the chop bug | |||
fayland | i saw 01Overview,that's great | ||
nothingmuch | it's tested | ||
sorry, business at work | 13:16 | ||
fayland | nothing need to change. | ||
hcchien, add a floder zh-cn, i'll do my best. | 13:17 | ||
how can i add/update the document? use svn? | 13:18 | ||
nothingmuch | uhuh | 13:19 | |
funny | |||
i changed diag in Test.pm to split the string on \n and then say "# $line" | |||
so that multiline diagnoses are ok | |||
this causes a problem: | 13:20 | ||
autrijus | fayland: right. give me your email | ||
nothingmuch | say("# Failed (TODO) test ($?CALLER::POSITION)"); | ||
autrijus | or rather, give hcchien your email | ||
nothingmuch | when translated to diag(...) | ||
autrijus | he'll invite you to the p6l10n project | ||
fayland | [email@hidden.address] | ||
autrijus | and you can then commit using svn to svn.openfoundry.org/p6l10n/ | ||
nothingmuch | then the test output becomes FAILED (TODO) test (.../Test.pm at line 57, column ...) | ||
autrijus | hcchien: give fayland an invitation? :) | ||
nothingmuch | i think haskell is lazifying the interpolation of $?CALLER::POSITION | ||
and doing it later with a different callstack is changing the results | 13:21 | ||
fayland | maybe just convert is ok? | ||
nothingmuch | or maybe not haskell, the impl itself | ||
am i on the right track? | |||
nothingmuch will try to write a test for this sort of like Devel::FIXME's tests | 13:22 | ||
autrijus | fayland: maybe, I'm not sure. | ||
hcchien | autrijus: sure. a sec | ||
autrijus | nothingmuch: try $CALLER::CALLER::POSITION | ||
nothingmuch | anyway, i'll keep the change, since it allows comparing multiline strings without ruining harness results | ||
autrijus: sure, that's a workaround | 13:23 | ||
but it shouldn't happen | |||
autrijus | I agree it should not. | ||
nothingmuch | since the place $?CALLER::POSITION is put in is the same | ||
autrijus | and thanks for your willingness to test it :) | ||
nothingmuch | ok, so i'll try to test | ||
autrijus is still writing weird choreography foo | 13:26 | ||
nothingmuch | explain? | ||
autrijus | just some $work thing. need to design how multiple company's web services work together | ||
hcchien | fayland: invitation is sent | 13:27 | |
autrijus | the XML formats used, the order of GET/POST calls, dependencies, retry policy, &c. | ||
at least REST is making this much easier. | |||
autrijus wonders if it's possible to implement this case in perl6 | |||
Limbic_Region notes that the release of Parrot 0.1.2 (Phoenix) has happened | 13:28 | ||
autrijus | yeah, I noticed it too. | ||
maybe I should try to compile it. | |||
will the next version be called Firebird? | |||
cls_bsd_ | then firefox? lol | 13:29 | |
autrijus | :) | ||
fayland | Thanks, i receive it. | ||
autrijus | parrot 0.2.1: Firefox | ||
Limbic_Region is responsible for the last Parrot release name | |||
autrijus | Limbic_Region: it means that it's reborn? | 13:30 | |
Limbic_Region | Phoenix - yes | ||
but that's not the one I am talking about "Poicephalus" | |||
0.1.1 release | |||
autrijus | ahh. | ||
that's a nice name. | |||
Limbic_Region | Phoenix is a mythological bird that is consumed by its own fire and then rises again from the ashes | ||
nothingmuch | t/magicals/caller_pos.t | 13:31 | |
have fun | |||
Limbic_Region | Poicephalus is an actual real Parrot | ||
autrijus | danke. | ||
what about the untodo work? :) | |||
nothingmuch | wait wait wait | ||
i have a stack | |||
i was doing something | |||
then i found the bug | |||
so i wrote a test | |||
now i'm back to that | |||
then i can go back to quoting.t, finish the bit i was working on | 13:32 | ||
and preempt | |||
and untodo | |||
autrijus | that's fine. I just unTODOed it. | ||
r502 :) | |||
so you can go back to quoting.t.t | 13:33 | ||
nothingmuch | ok =) | ||
Test.pm updated | |||
in a way that is correct | |||
but currently annoying | |||
so that you'll fix t/magicals/caller_pos.t faster ;-) | |||
www.asianbridesonline.com/smart-match/ | 13:46 | ||
smart match | |||
beh | |||
i hope perl6 raises the google rank | |||
cls_bsd_ svk up -s again | 13:47 | ||
nothingmuch | are binding and flattenning tested properly? | 13:48 | |
ah | 13:49 | ||
bootyful | |||
autrijus: how hard will it be to stub ~~ with something? | 13:55 | ||
autrijus | very easy, as long as you define what something is | 13:56 | |
nothingmuch | "eq"? | ||
it seems like simple logic, really | |||
it is basically a big if else/switch statement | |||
i reckon you could implement 30-40% in under half an hour | |||
autrijus | where is ~~ on precedence table? | 13:57 | |
nothingmuch | uh | ||
(dyslexia) | |||
chaining binary | |||
right next to >= and eq | 13:58 | ||
you find ~~ and !~ | |||
autrijus | ok. | 14:00 | |
so ~~ is chaining? | |||
how bizzare! | |||
nothingmuch | i have no idea how | ||
but it appears so | |||
autrijus | $a ~~ $b ~~ $c | ||
nothingmuch | sometimes the rhs doesn't make sense being compares | ||
s/s$/d/ | |||
but whatever | |||
.reverse.tr/s/d/ | |||
nothingmuch starts thinking in perl6 | 14:01 | ||
fayland | see u all later. | 14:06 | |
nothingmuch | ciao | ||
pmichaud | good morning, all | 14:11 | |
nothingmuch | morning, pmichaud | 14:12 | |
autrijus | hey pmichaud! | ||
pmichaud | hello nothingmuch, autrijus | ||
I'm looking at the question that was posed to p6c earlier about the error message with the dot operator | |||
metaperl | oh my question... | 14:13 | |
pmichaud | I'm curious if perl6 allows spaces between the method dot and whatever follows | ||
metaperl | are spaces allowed around the dot? | ||
pmichaud | I dunno :-) | ||
metaperl | there's an echo in the room :) | ||
nothingmuch | before the dot, i think yes | ||
after the dot, i think no | |||
pmichaud | well, spaces are clearly allowed before the dot, that's why it exists :-) | ||
nothingmuch | but before the dot must be unamibiguos because there's topicalizer | ||
pmichaud | otherwise we can't do $foo .($bar) | ||
nothingmuch | logically after the dot there shouldn't be | 14:14 | |
since it lets us extend whitespace up to it | |||
so... =P | |||
pmichaud | but after the dot -- I didn't see any examples in the synopses that included spaces after the dot | ||
nothingmuch | luqui could prollly answer that | ||
autrijus | currently it's a syntax error to have space following dot. | ||
in pugs. | |||
pmichaud | shall I forward it to p6l? | 14:15 | |
nothingmuch | autrijus: how's the ~~ stubbing coming along? | ||
i have a preliminary test | |||
i'm sick of working on it for now | |||
but just so you know, it's getting there | |||
i'd rather not eval everything | 14:16 | ||
autrijus | oh, it's done | ||
I just had not committed it | |||
nothingmuch | can i cherry pick with svn? | ||
or maybe you'd like to take over the test stub, and commit them both at once? | 14:17 | ||
autrijus | you can cherry pick with svk. | ||
nothingmuch | or perhaps vice versa | ||
svk is clunky on my box | |||
autrijus | with svn too, via a awkward "svn merge" | ||
nothingmuch | i haven't grokked it yet | ||
autrijus | yup, so I heard. | ||
nothingmuch | and something is wrong with it | ||
autrijus | anyway, up to r506 | ||
and commit your test | |||
r506 has ~~. | |||
nothingmuch | i'll first make sure it compiles and all | ||
give me 5 mins | |||
autrijus | sure | 14:19 | |
pmichaud: so, how's going these days? :) | |||
nothingmuch | do we have ^ ..^ ranges? | ||
autrijus | what is that? | ||
I had no idea, so I didn't do anything about it. | |||
pmichaud | autrijus: better now -- for the past week and a half I got swamped by having to babysit sick kiddies :-( | ||
nothingmuch | 1 ^.. 5 == 2 .. 5 | ||
autrijus | pmichaud: aww :( | 14:20 | |
nothingmuch: wow. and how useful it that? | |||
nothingmuch | uh | ||
=P | |||
autrijus | where is it specced? | ||
pmichaud | autrijus: yeah, it kept me away from doing much perl 6 work. But I'm back :-) | ||
nothingmuch | num ~~ range... | ||
pmichaud | ^.. is listed in S03, methinks | ||
nothingmuch | so i just tested for it | ||
i think it's silly | |||
autrijus | it's listed in S03. | 14:21 | |
not defined. | |||
reading A03 | |||
not in A03. | |||
so, hey, it's unspecced :) | |||
nothingmuch: where did you get the idea that ^.. means +1.. ? | 14:22 | ||
nothingmuch | i don't remember | ||
i heard it was excluding range | |||
pmichaud | ..^ means everything up to but not including | ||
autrijus | pmichaud: can we get that and unary = somewhere in either synopsis or apocalypse? :) | ||
<- feeling uncomfortable implementing piles of unspecced features | 14:23 | ||
pmichaud | ..^ is mentioned in S09 and S11 | ||
nothingmuch | that's what I meant by excluding... | ||
autrijus | true, but defined only implicitly :) | ||
but ok, I'll implement them now. unary = as readline is unspecced, though? | 14:24 | ||
pmichaud | yeah, I think unary = is still unspecced | ||
Steve_p | No more assignments :) | ||
nothingmuch | unary, silly! | 14:25 | |
autrijus | Steve_p: nah, assignment is binary | ||
pmichaud | it'll be interesting to note the differences between $x = $file, $x == $file, and $x = =$file :-) | ||
autrijus | all three are implemented in pugs :) | ||
pjcj | Looks like using hat with pugs isn't going to fly, as pugs uses some libraries which are unsupported in hat. | 14:26 | |
autrijus | pjcj: can we leave them unhatted? | ||
pjcj | I'm not sure - I couldn't find an easy way, but I'm just learning about hat. | ||
nothingmuch | t/op/smartmatch.t | 14:27 | |
theorbtwo | Hat works as a preprocessor; I think we'd have to leave the entire file unhatted... | ||
pjcj | theorbtwo: right | ||
theorbtwo | ...which doesn't fly because it wants to have the entire stack hatted. | ||
Steve_p | Oh, duh! | 14:28 | |
Steve_p gets more coffee to shake out the cobwebs | |||
autrijus | is it possible to "support" those libs | 14:29 | |
using stubs? | |||
nothingmuch can't think of any generic feature other than OOP to test for | |||
theorbtwo | Bracketless if? | ||
autrijus is again amazed by nothingmuch's prolificity | |||
theorbtwo | my <type> $x; | ||
pjcj | The problem is that files using unsupported libraries cannot be parsed at the moment. | ||
nothingmuch | theorbtwo: where is the introspection of that specced? | 14:30 | |
should i just test that my Int $foo; my Str $blah; can't be assigned to eachotheR? | |||
my Int $foo; | |||
$foo ~~ Int? | |||
theorbtwo | No, assigning to each-other isn't automatically dead... | ||
That'd work, but tests for both my Int $foo and ~~. | |||
Make a "I'm still here" test and a sepperate ~~ test? | 14:31 | ||
nothingmuch | i'm still here = ok(eval 'my Int $foo; 1', "did not die")? | ||
i just committed ~~ ;-) | 14:32 | ||
well, a partial ~~ | |||
theorbtwo | Oh! Nifty. | ||
Yep, nothingmuch. | |||
nothingmuch | since ~~ is now a synonym for eq, temporarily, it's a bit weird | ||
some things are todo_ok, and some are just ok() | |||
theorbtwo | Hm... I should think it's quite possible to be a bit smarter then that... | ||
nothingmuch | i wanted to commit quickly, because autrijus already did the stub | 14:33 | |
so the Hash type ~~ is not there | |||
and some things i did not 100% understand | |||
by bracketless if you mean 'if 1 > 0 {}'? | 14:36 | ||
or 'expr if 1 > 0'? | |||
or ...? | |||
autrijus: see t/op/smartmatch.t for array element truth: | |||
@array ~~ .[1] | |||
this is true if element 1 of array is true | 14:37 | ||
metaperl | wow, that is some wild syntax | ||
nothingmuch | (seems useless, but not in context of given @a { .[0] { } } | ||
anywho, it doesn't parse | |||
theorbtwo | if 1 {ret "Wohoo"} else {ret "WTF?"} | ||
metaperl | what is wrong with @array[1] to test for that element being true? | ||
autrijus | nothingmuch: right. eval it. | ||
nothingmuch | it is evalled | ||
mauke | if { 1 > 0 } {} should compile, right? | ||
autrijus | it should. it currently does not. same bug as parenless. | 14:38 | |
theorbtwo | Yes... but I'm not sure what it does... | ||
autrijus | hi stevan! | ||
metaperl | nothingmuch, what is the ~~ operator? | ||
stevan | morning autrijus | ||
nothingmuch | metaperl: smartmatch | ||
stevan | hola nothingmuch | ||
metaperl | I hope this group is for learning Perl 6 as well as Perl 6 development :) | ||
autrijus | metaperl: nothing is wrong with @array[1]. | 14:39 | |
the idea of smartmatch is to mimick given{} behaviour. | |||
metaperl | given? | ||
nothingmuch | hola stevan | ||
mauke | given .. when | ||
metaperl | given is not a keyword is it? | ||
nothingmuch | give $foo { when blah { } } | ||
mauke | like switch .. case, only smart | ||
metaperl | I think I understand you | ||
nothingmuch | s04 | ||
metaperl checks synopsis04 | |||
autrijus | S04 explains it pretty well, yeah. | 14:40 | |
integral | 1 | ||
autrijus | also check out E04. | ||
"And I'd se-ell my-y so-oul for flow of con-tro-ol ... over Perl" | |||
nothingmuch | theorbtwo: t/var/type.t added, for lives ok, and t/base/if.t updated for parenless | 14:42 | |
autrijus | actually, E04 is a pretty good read for pretty much everything | 14:43 | |
nothingmuch | autrijus: had a look at t/base/control_blocks.t? | 14:44 | |
theorbtwo makes some food, BRB. | |||
autrijus | yup, I had. | ||
I need ~2 day of concentration | 14:45 | ||
nothingmuch | any idea on how to make it a bit better? | ||
autrijus | to do Rule in Eval | ||
which is neccessary to make BEGIN work | |||
nothingmuch | Rule in Eval? | ||
autrijus | so maybe this weekend. | ||
nothingmuch: "evaluation during parsing" | |||
nothingmuch | explain | ||
ah | |||
purdy | |||
nothingmuch especially likes $var = BEGIN { "foo" } | |||
autrijus | so you can use eval'' to test them too | ||
nothingmuch | i didn't want to do that | 14:46 | |
autrijus | eval 'my $x; $x = 2; BEGIN { $x = 3 }' | ||
nothingmuch | because of INIT vs. FIRST vs. ENTER | ||
autrijus | oh ok. just leave the comments in then | ||
nothingmuch | when we have these working, i'll retro glue eval behavior | ||
autrijus | I'll deal. | ||
'kay. | |||
nothingmuch | so we don't have the mod_perl/require INIT { } block mess all over again | ||
autrijus | yup yup. | ||
nothingmuch | even though macros and a proper object system will prolly do away with 95% of the reasons for INIT blocks in perl5 code | 14:47 | |
what is the status of the rule engine? | |||
autrijus | you can ask pmichaud :) | 14:48 | |
the pugs rule engine won't happen before OO | |||
as detailed in the roadmap | 14:49 | ||
nothingmuch | i'm curious as to how it relates to parsec, etc | ||
autrijus | I'm curious too. | ||
<- has no plan | |||
nothingmuch | we have a roadmap? | ||
autrijus | maybe we use PGE to compile rules to parsec. | ||
nothingmuch googles | |||
autrijus | nothingmuch: in PA01 | ||
"Do you have a roadmap for Pugs development?" | |||
hcchien | What is the answer? :p | 14:50 | |
autrijus | # 6.0: Initial release. | ||
# 6.2: Basic IO and control flow elements; mutable variables; assignment. | |||
# 6.28: Classes and traits. | |||
# 6.283: Rules and Grammars. | |||
there you go. | |||
we're close to 6.2 now | |||
just need to fix the remaining prim todos and sync todos | 14:51 | ||
and try/catch/given | |||
nothingmuch | prim todos? | ||
que es? | |||
autrijus | the todo tests on primitives. | ||
nothingmuch | ah | ||
autrijus | on misimplemented primitives. | ||
s/sync/syntax/ | |||
to be honest, I thought I'd take at least 6 months to reach 6.2 ;) | 14:52 | ||
nothingmuch hopes his haskell fu can materialize sometime soon enough to be useful | |||
i think the community has been very accepting | 14:53 | ||
autrijus | take your time; you're already amazingly useful | ||
nothingmuch | and overall there has been very little trouble | ||
autrijus | yeah. which also surprises me :) | ||
nothingmuch | well, haskell and fp are naughty words | ||
but even so, you can't argue with facts | |||
pmichaud | well, I know the design team is very appreciative of all of the pugs efforts | ||
nothingmuch | fact is that pugs works | ||
and it got here fast | |||
and it gave everything a big kick in the arse | 14:54 | ||
autrijus | pmichaud: yup, and I'm really happy :) | ||
nothingmuch | a well needed one at that | ||
theorbtwo | Back. fp? | ||
nothingmuch | functional programming | ||
theorbtwo | (Arse-kicking)++ | ||
Ah. | |||
pmichaud | we're also glad that autrijus was able to see that haskell would be a good way to get some sort of implementation started | ||
autrijus | fun, as in joy | ||
ction, as in ka-chin, as in big money | |||
nothingmuch | you'd have to be a hell of a naysayer to say 'pugs is stupid' | ||
autrijus | al, as in all, as in lots of people should join | ||
nothingmuch only hopes more design people could lurk here to help answer questions | 14:55 | ||
autrijus | nothingmuch: luqui and pmichaud :) | ||
nothingmuch | pmichaud eq ? | ||
pmichaud | I'm the p6 compiler pumpking :-) | ||
autrijus | patrick michaud, perl6 compiler and pge pumpking | ||
nothingmuch | ah, leo | ||
oh | |||
otherwise | |||
*blush* | 14:56 | ||
i asked the thedamian and timtoady on PM, thedamian said ENOTUITS | |||
and timtoady did not reply yet | |||
autrijus | via msg? | ||
pmichaud | I mean, with me and luqui you have the "compiler" representatives of the team | ||
nothingmuch | uhuh | ||
theorbtwo | Aye. I don't think Larry and Damian have time to lurk anywhere. | ||
autrijus | I know damian has no tuits. I don't blame him at all. | ||
theorbtwo | Or possibly inclination. | ||
nothingmuch | i don't blame | ||
i just had to ask | |||
pmichaud | no, he really does have no tuits | ||
theorbtwo | I meant Larry re inclination. | 14:57 | |
autrijus | pmichaud: seano and stevefink also visits here from time to time | ||
nothingmuch | luqui has been so useful in regards to writing tests correctly | ||
but he's not always around | |||
theorbtwo | Never heard of him lurking anywhere; he prefers offline media. | ||
nothingmuch | that's what i sort of meant | ||
autrijus | although seano prolly isn't involved in P6C.pm anymore :) | ||
pmichaud | plus, it's not terribly efficient to have everyone on the design team lurking and chatting on irc -- between luqui and myself we try to keep up with pugs stuff | ||
autrijus | pmichaud: oh, re keeping up: ingy hacked together Pugs::MakeMaker today | 14:58 | |
pmichaud | oooooh | ||
autrijus | so proper modules can be written and installed | ||
pmichaud | most excellent | ||
autrijus | already an example is there in examples/ | ||
nothingmuch | autrijus: i can't make test since, btw | ||
autrijus | I mean modules/ | ||
pmichaud | my goal for this week is to get PGE finished up with its stuff | ||
autrijus | nothingmuch: because of the make install trouble? | ||
nothingmuch | i prove -r with HARNESS_PERL and PERL6LIB set to ext/Test/lib | ||
pmichaud | although I have to go out of town starting Wednesday so it may be early next week | ||
nothingmuch | i didn't once make install | ||
it's all in the src dir | |||
./pugs foo | 14:59 | ||
autrijus | ah. so prove works | ||
but not maketest? | |||
nothingmuch | exactly | ||
autrijus | weird. linux? | ||
nothingmuch | btw, prove -r uncovers two tests | ||
autrijus | osx? | ||
nothingmuch | osx | ||
autrijus | yeah the two tests isn't meant to be run. | ||
it's there for _future_ | |||
ok, ingy is also on osx, so maybe you should check with him | |||
in fbsd and w32 all passes | |||
nothingmuch | it's not urgent | ||
i'll wait till someone gets around to it | 15:00 | ||
autrijus | nod. just let ingy know | ||
nopaste the failure and post on p6c or tell him here or something | |||
pmichaud: btw svn.perl.org is now closely synched | 15:01 | ||
instead of by day | |||
which should make life easier for some people tracking it | |||
nothingmuch | i told him by /query | ||
pmichaud | autrijus: I noticed that svn.perl.org is closely synched :-) | ||
autrijus | good then | ||
nothingmuch++ | |||
pmichaud: you get commit mails? | |||
pmichaud | autrijus: I'm getting svn commit messages all the time instead of all at once :-) | ||
autrijus: yes :-) | |||
autrijus | ahh. :D | ||
nothingmuch | sorry for that, pmichaud... =) | 15:02 | |
pmichaud | nothingmuch: it's not a big deal -- I just browse through them quickly to see what's happening and remove them | ||
if it becomes too big an issue I'll filter them | |||
nothingmuch wasn't really serious.. =) | |||
autrijus | also pugs is the first time I've worked with the PM community | 15:03 | |
and I must say it's been wonderful. much better than ~3 years ago when I first joined there | |||
theorbtwo | Thank you, autrijus. | ||
autrijus | demerphq++ # for convincing me that perlmonks really rocks, when I was in germany | 15:04 | |
nothingmuch | iit so does | ||
ah! do we have gather? | |||
is that in base or op? | 15:05 | ||
autrijus | we don't. I have a questions | ||
nothingmuch | because it's a block | ||
autrijus | question, even | ||
is take{} a lexical sub | |||
or a syn construct? | |||
nothingmuch | hmm | ||
autrijus | i.e. does given{} materialize a &take | ||
nothingmuch | i'd say it's easy to implement it as a lexical sub | ||
autrijus | or something else? | ||
nothingmuch | and i see no fault | ||
autrijus | sure. currently return() is implemented as such | ||
except then you'd be able to \&take | 15:06 | ||
nothingmuch | ooh | ||
autrijus | and generally wreck havoc | ||
wait! oh no | |||
you can already \&return now | |||
and it acts as a continuation | |||
nothingmuch | that's wonderful | ||
autrijus boggles | |||
pmichaud | if it can be implemented as a lexical sub I'd say do it that way :-) | ||
nothingmuch thinks if return_if can be implemented with that | 15:07 | ||
autrijus | pmichaud: but when happens if we take a reference to it? :) | ||
nothingmuch | without passing \&return | ||
but accessing $OUTER somehow | |||
\&return is GCed after sub exit, right? | |||
pmichaud | autrijus: well, perl always gives people enough rope to hang themselves if they want to take it | ||
nothingmuch | btw, this reminds me | ||
is GC defined? | |||
autrijus | point well taken. let's do it as lexical sub then. | ||
nothingmuch: parrot is using generational GC I think | 15:08 | ||
anyway it's not refcounting anymore | |||
pmichaud | parrot is expected to use generational GC, although it doesn't do that yet | ||
autrijus | that much has been specced. | ||
pmichaud | at least I think that's what leo wrote recently | ||
nothingmuch WANTS REFCOUNT GC! | |||
autrijus | pugs will just use GHC GC. | ||
nothingmuch | the oodles of horrible code I wrote for refcount GC | 15:09 | |
autrijus | which is extremely advanced :) | ||
nothingmuch | all... dead... | ||
*sniff* | |||
nothingmuch remembers an O(1) purge time LRU cache | |||
autrijus | it's incremental generational with very small overhead and no pauses. | ||
nothingmuch | implemented by just popping elements off a linked list and letting perl cleanup the mess | ||
autrijus | # research.microsoft.com/Users/simonp.../non-stop/ | ||
wolverian | I wonder if that would be useful for the parrot folk. | 15:10 | |
autrijus | not sure. parrot != STG machine | 15:11 | |
but feel free to forward that reference. | 15:12 | ||
OpenAFP.hs uses lots of weakrefs | |||
and custom destructors | |||
with pointer arithmatic | |||
arithmetic even | |||
wolverian | I should take a look at leo's current GC scheme first. | ||
autrijus | and GHC's GC ensures that it's always running in constant space :) | ||
autrijus would be absolutely delighted if parrot's GC can do something like that | |||
wolverian | (I'd be fine with refcounting too. automatic, immedate destruction on scope exit is wonderful.) | 15:13 | |
nothingmuch would like 'use gc 'blah'' to apply to new thingys created in the lexical scope the pragma was defined in | |||
if only got immediate destruction on scope exit | |||
i really like objc's (well, openstep's) GC scheme, too | 15:14 | ||
you tell an object to register with a destroyer | |||
x times | |||
retain causes the object to up it's ref count | |||
release to dec | |||
count == 0, it deallocs itself | |||
autrijus | same as p5, no? | ||
pmichaud | hmmm, in reviewing my files I can't find where I thought leo had described the current state of gc in parrot. | ||
maybe it's on p6i | |||
nothingmuch | anywho, when the destroyer object is destroyed, it sends x release messages to the object | 15:15 | |
it's very very flexible | |||
and if you behave ok, not too much headache | |||
jdv79 | he's mentioned it on p6i in the last few weeks | 15:16 | |
autrijus | wow. Ruby Interpreter. | ||
obra | irb? | 15:17 | |
autrijus | somebody at Utrecht did a ruby interp using LML and Gofer. | ||
which is very clas^Wclose to haskell. | |||
obra | ah. interesting. poor perl5. it has but one implementation | ||
pmichaud | obra: for the moment, ponie may fix that :-) | 15:18 | |
obra | well, ponie is still the same codebases as 5.x | ||
rgs | and it's supposed to have the same bugs :) | 15:19 | |
autrijus | bugward compat | ||
theorbtwo | Ponnie is supposed to slowly diverge, though sometimes I wonder if it's stopped diverging. | 15:20 | |
autrijus | theorbtwo: no need to wonder: www.nntp.perl.org/group/perl.ponie.changes | 15:27 | |
theorbtwo | Nov 4. I think that counts as pretty well dead. | 15:29 | |
obra | "It's pining. For the fjords" | 15:30 | |
PerlJam | theorbtwo: or you could think of it as moving really really really slow | ||
pmichaud | it's moving really really slow | 15:31 | |
rgs | it's not dead | 15:35 | |
Khisanth | just moldy? | ||
autrijus | nicholas still has plan for it, iirc. | ||
pmichaud is suddenly reminded of monty python :-) | |||
"it's not dead yet." | 15:36 | ||
autrijus | pmichaud: you too? :D | ||
nothingmuch | "i'm not dead yet" "you'll be stone dead in a moment" | ||
pmichaud | of course, people were probably saying the same sorts of things about perl 6 a month ago :-) | 15:37 | |
autrijus | maybe someone will redo ponie in D, then | 15:38 | |
autrijus thinks D is nice | |||
PerlJam | pmichaud: or even 36 days ago (pre-pugs) :-) | ||
theorbtwo thinks perl6 is feeling much better. | |||
pmichaud | pj: gee, has it been 36 days already? | ||
I guess it has | |||
wow, february just flew past | |||
autrijus | I've been counting the days :) | 15:39 | |
but yeah. it's a really short month. | |||
nothingmuch | this is truely amazing | ||
the man months that have gone into pugs are not that many | |||
and yet, wow... | |||
how the hell | 15:40 | ||
autrijus mumbles something about effective tools. | |||
PerlJam | nothingmuch: Easily 6 months I'd say. | ||
autrijus | 6 feels about right. | ||
PerlJam | er, 6 man-months | ||
nothingmuch | 6 months is very very little | ||
man months | |||
pmichaud | effective tools, plus there's been a *lot* of work put into the design documents | ||
autrijus | yup. pugs won't be possible without the dec 04 revision. | ||
nothingmuch | well, that's true | ||
autrijus | before the dec batch of synopsis... | ||
PerlJam | yeah, design is always the hard part. | ||
autrijus | ...it's basically impossible for anyone to implement anything :) | ||
nothingmuch | that's true | 15:41 | |
pmichaud | part of the reason why perl 6 floundered (and why I'm not farther along) is that many issues couldn't really be handled until after the december revisions of the synopses | ||
autrijus | yup. that much is clear | ||
so, much kudos for larry and whomever else that gets that revision out | |||
PerlJam | clear to the "insiders" but not many others. | ||
pmichaud | and PGE would be farther along except that we had to rethink the whole capture semantics | ||
autrijus | PerlJam: clear as a "retrospective" :) | ||
pmichaud | and I needed Dan's string code that just came out in parrot 0.1.2 | 15:42 | |
autrijus | pmichaud: which, I'm happy to hear, is finally settled | ||
autrijus mumbles something else about deadlocking :) | |||
pmichaud | autrijus: well, the capture semantics aren't completely settled, but at least we have an approach that is workable now :) | ||
autrijus | nice then | ||
nothingmuch | whaty are threads going to look like in perl6 btw? | ||
i had a funny thought | |||
i don't know how to name them | |||
autrijus | nothingmuch: read the two RFCs | ||
about lightweight threads | |||
and maybe come back with some tests in unspecced/ | 15:43 | ||
nothingmuch | RFCs are 'this must be' | ||
autrijus | I'm willing to experiment a bit with threads. | ||
since threads in GHC == trivial | |||
nothingmuch | ok, dig this: | ||
autrijus | and has no chance of deadlocking :) | ||
nothingmuch | mandatory locks on vars | ||
cause any code accessing them (read, write) to deadlock | |||
autrijus | 5005 threads? | ||
autrijus waits for nothingmuch to finish | |||
nothingmuch | until it is realease | ||
d | |||
a thlosure is a { }, whose externally referenced vars, that are not redeclared within it 'is ro' | 15:44 | ||
are automatically locked when it is threaded | |||
this way, execution splits | |||
but when there is competition for shared data that mustn't seem shared, there is waiting | 15:45 | ||
nb lock checks | |||
and other utils should help for boss threads | |||
since globals are practically going away with perl6, this can be quite easy | |||
to handle | |||
autrijus | there is still our() | 15:46 | |
and $*FOO. | |||
if globals are really all gone, then yeah | |||
but they are not. | |||
nothingmuch | in that case | ||
since access is not so deterministic | |||
locks are granted in a fifo order | |||
the first thread to use $*FOO has it exclusively till it dies | |||
ofcourse, people wanting proper concurrency just don't touch globals | 15:47 | ||
but sanity is possible | |||
autrijus | I wonder if I should refer you to the STM paper :) | ||
nothingmuch | que stm? | ||
autrijus also wonders if pugs should take advantage of STM. | |||
research.microsoft.com/%7Esimonpj/Papers/stm/ | |||
nothingmuch | refer refer | ||
autrijus | the Hot Topic in haskell world. | ||
pmichaud | well, I have to run off for a while -- bbl | ||
autrijus | see ya | ||
nothingmuch | adios, pmichaud | 15:48 | |
theorbtwo | Hm, if he means by "transactional" what I think he does, it should gel very nicely with p6. | ||
autrijus | I think so too. | ||
although parrot may not support that well. | |||
nothingmuch | my problem with ithreads is that i have no memory/time efficient way to get low latency updates on a long running task | ||
i.e., a something that computes long and hard, with a web interface | 15:49 | ||
theorbtwo | (Where Larry seems to be putting much more emphisis on transactions vs lvalue subs then I would, but it's his language...) | ||
autrijus | personally I think STM is the Holy Grail of concurrency programming, at least in this generation of software tools :) | ||
hey kcwu! | |||
theorbtwo | ithreads seem to me to be a worst of both worlds thing; almost might as well just fork. (This is unsurprising, as ithreads started as a way to fork where you couldn't.) | ||
nothingmuch | theorbtwo: i'd rather fork | 15:50 | |
it's much quicker | |||
kcwu just start to learn haskell :) | |||
nothingmuch | my problem with forking is RPC | ||
autrijus | ithreads works on win32. | ||
that's all I ask for. | |||
<- has almost all clients on win32 | |||
nothingmuch | you have to create a protocol, instead of just sharing | ||
theorbtwo | 1; | ||
nothingmuch | or deal with one that isn't perfect | ||
autrijus | kcwu: cool. doing YAHT exercises? :) | 15:52 | |
nothingmuch always wished for a compiler optimisation that would fill registers as early as possible, and use them as late as possible | |||
PerlJam | theorbtwo: forking and threads are variations on the same concept. The problem has always been that people tie those names to particular implementations. | ||
nothingmuch | and in the time it takes the bus to move stuff around, do other things | ||
integral | nothingmuch: isn't that what happens on RISC architectures? | 15:53 | |
kcwu | autrijus: yes :) | ||
nothingmuch | i don't know, it just sounded good in theory | ||
i programmed in assembler till the point that i know how it looks to the user, but never got further | |||
twas a school thing | |||
theorbtwo | PerlJam, I know, but the variations are important ones. The implementations much less so. | 15:58 | |
nothingmuch wonders if temp vars can be expanded to transactional modification | 16:00 | ||
sub is transactional { } | |||
all changes in sub are rolled back on fial | |||
or committed atomically on success | |||
autrijus | I also wonder if junctive autothreading can be made into real threads. | 16:01 | |
nothingmuch | junctive autothreading is sideeffect free, no? | ||
autrijus | I mean, in pugs. should be trivial, if not for those pesky side effect things. | ||
eh? no, they are not side effect free. | |||
sub foo { say $_ }; foo(1|2|3); | |||
nothingmuch also wonders if anyone ever looked at his taint mode genertalization post to p6l | |||
ah | |||
theorbtwo | Um, did anybody ever specify what order they should be made in? | ||
nothingmuch | in case of sideffects, err, you don't | ||
well, foo any(....) is defined as undefined | 16:02 | ||
the compiler can decide to parellize | |||
i would start by shuffling | |||
theorbtwo | Is it considered valid for that to print "2\n1\n3\n"? | ||
autrijus | right. so the question whether to parrallize. | ||
theorbtwo: it is. | |||
nothingmuch | to make sure people eat shit making assumptions | ||
autrijus | s/whether/is whether/ | ||
theorbtwo | I think it'd be perfectly valid to do so. I'm much less sure it'd be a win to do so. | 16:03 | |
nothingmuch | well, it's a choice | 16:04 | |
on a 2 cpu, hyperthreading machine, this could be a big win | |||
4 threads running at once | |||
theorbtwo | Depends a lot on the cost of starting threads. | ||
nothingmuch | HT taking care of latency issues with context switching | 16:05 | |
assuming threads are zero cost | |||
COW | |||
theorbtwo | Right. | ||
nothingmuch | (in theory) | ||
theorbtwo | Depends on the arch. | ||
If we're talking native threads, very cheap on Linux, much more expensive on win32. | 16:06 | ||
nothingmuch | i think perl6 is supposed to implement them regardless | ||
somehow | |||
marcusT | mmmm, maybe guessing a language isn't the best way, but why does @foo = (1, 2, 3, 4) give "Can't write a constant item" message? | ||
theorbtwo | Yeah, I know, but the cost of starting a thread determines how often you should do so. | ||
say(1|2|3|4) starting four threads is unlikely to be worth the effort. | 16:07 | ||
nothingmuch | but all(1 .. 100) * any(1 .. 100) with 2 workers is probably a 99% increase | ||
you could also keep a pool | 16:08 | ||
pre-autothread | |||
spawn X workers at startup | |||
and use them as needed | |||
it probably will even simplify impl | |||
autrijus | my @foo; @foo = (1,2,3,4) | 16:14 | |
worksforme | |||
nothingmuch | gather.t finally whipped up | 16:16 | |
how far are hyper ops? | 16:21 | ||
autrijus | not parsed at all. | 16:22 | |
nothingmuch | they are essentially not a very hard feature, though, are they? | 16:23 | |
autrijus | not at all. the parsing is harder. | ||
can any binary Op be hypered? | |||
nothingmuch | i think so | ||
and also unary | |||
autrijus | $x >>x<< 3 | ||
nothingmuch | @aĀ»++ | 16:24 | |
auto increments all parts of @a | |||
theorbtwo | I think the plan is for all ops, including user-defined operators and functions, to be hyperable. | 16:26 | |
(Either by having a seperate hyper'd implementation, or by sythesizing one from the normal defintion... I don't remember from where I'm getting that, though...) | 16:27 | ||
nothingmuch | basically, anything infix is hyperred if Ā»infixĀ« | ||
no white spaced | |||
anything unary postfix is Ā»++ | |||
autrijus | makes sense. | ||
nothingmuch | unary infix is for example @a = -Ā« (1, 2); # ~~ (-1, -2) | 16:28 | |
if i understand correctly | |||
also, @objects Ā».run | |||
(i like that one especially) | |||
(although i have sentiments for $_->foo for (@objects) in perl5) | |||
.foo for @objects; # p6 equiv? | |||
can you stack hyper for multiple dimentions? | 16:30 | ||
autrijus | perl6 is weird. in a good way. | 16:31 | |
wolverian | I seriously hope you can't stack hyper. | ||
nothingmuch | why not? | ||
@matrix Ā»Ā»+Ā«Ā« @matrix | 16:32 | ||
makes sense | |||
if you know the dimentions | |||
ofcourse, you may be better off using a piddle | |||
wolverian | hrm, I guess. | ||
nothingmuch | and mmd invocant infix + that matches them | ||
wolverian | it just feels like too much in too little. | ||
nothingmuch | i think it's more consistent to stack them | ||
but i don't know | |||
theorbtwo | You can do that, I think. | 16:33 | |
Khisanth | but then what about @matrix Ā»Ā»*Ā«Ā« @matrix ? | ||
nothingmuch | @multiplied = | ||
i don't see what's wrong | |||
theorbtwo | ...but you can't >>>>*<<<< for super hyper action. | ||
autrijus | oh. I may repeat myself, but I think pugs won't do latin1 >> and << | ||
malaire | btw, does anyone know if solution for example 9.2 in YAHT is OK? I just get error message when I try it. | ||
autrijus | and I'd like to see latin1 banned from the language, but I'm biased :) | ||
nothingmuch | me too | 16:34 | |
hebrew is unbearable in anything but unicode | |||
autrijus | chinese too. | ||
wolverian | how is that related? just write your perl in utf. | ||
(with chinese variable names! and stuff. yay. I am anticipating debugging chinese perl. :|) | 16:35 | ||
nothingmuch | because without a need for encoding as utf8 people won't | ||
autrijus | exactly. | ||
wolverian: larry posted some chinese examples on p6l | |||
wolverian | er, so? | ||
autrijus | as justification for sigilless | ||
nothingmuch wonders if rtl could be don | |||
wolverian | autrijus: yeah. :) it was nice. | ||
nothingmuch | ×× 1 < 2 { $פ×× = 5 { | ||
פ×× = foo | 16:36 | ||
wolverian | this font doesn't have those characters, I think. | ||
nothingmuch | ×× = if | ||
theorbtwo scratches his head. | |||
wolverian | (courier new. ugh.) | ||
nothingmuch | and {} are reversed | ||
as well as sigils on the end | |||
ofcourse | |||
wolverian | (er, andale mono.) | ||
nothingmuch | logically, they aren't | ||
you type it in the same order | |||
and it's the same char | |||
s | |||
but they're displayed reversed | |||
=D | |||
theorbtwo | Ah. They're supposed to be displayed reversed; gaim isn't doing that. | 16:37 | |
I suppose all is fair if you predeclare, but that just gives me the heeby-geebies. | |||
nothingmuch | don't worry, i won't be uploading that to CPAN ;-) | 16:38 | |
but with macro support perl6 could be easily perligata'ed correctly | 16:39 | ||
use Perl::NLS; | |||
Khisanth | nothingmuch: people might actually expect to get matrix multiplication from @matrix Ā»Ā»*Ā«Ā« @matrix :) | ||
nothingmuch | type perl with prims in your own language | ||
i would expected $mul[0][0] = $a[0][0] * $b[0][0]; | |||
and then [0][1] = [0][1] * [0][1] | 16:40 | ||
t/op/hyper.t added without interdimentional travel | |||
can you declare operators yet? | 16:43 | ||
nothingmuch has a ride home, ciao | 16:44 | ||
ingy | hola | 17:03 | |
autrijus | hi ingy san! | 17:04 | |
17:04
_metaperl is now known as metaperl
|
|||
ingy | hello autrijus san | 17:05 | |
how goes? | |||
autrijus | very good. about to sleep now. | 17:06 | |
lotsa things happened in #perl6. | |||
whilst you slept :) | 17:07 | ||
as usual. | |||
ingy | hmmm | 17:09 | |
surprisingly no patches to my patches | 17:10 | ||
17:11
Aankh|Clone is now known as Aankhen``
|
|||
cls_bsd_ | will | 17:21 | |
ingy | autrijus: what do you think of a `-b` flag for -Mblib functionality | ||
autrijus | I think blib.pm. | ||
ingy | ok | ||
autrijus | not really convinced it's worth a flag. | ||
ingy | ok | 17:22 | |
so I was thinking of how to implement -M | |||
is it easy to eval Perl6 code in the haskell code? | 17:23 | ||
autrijus | there is the "eval" op | 17:26 | |
so yeah | |||
but -M implies 'use' | |||
we only have 'require' | |||
ingy | good enough for now | ||
autrijus | but if you can live with -M means 'require' then sure. | ||
ingy | sb end | 17:39 | |
17:49
DrHyde is now known as DrSockHunter
|
|||
nothingmuch | beh, horrible weather | 17:52 | |
autrijus | journal up. sleep & | 17:53 | |
nothingmuch | sleep well! | ||
nothingmuch walked home about 3km | 17:54 | ||
it was drizzling mud, | |||
there was a dust storm all day | |||
and now it started dripping | |||
i'd say 80-90% humidity | |||
but hot | |||
dada | buonasera | 18:01 | |
larsen | hi dada | 18:02 | |
dada | hullo larsen :-) | ||
a question for who's listening | |||
is the unary splat operator implemented in pugs? | 18:03 | ||
(I mean, *@array) | |||
PerlJam | dada: I don't think so. | 18:04 | |
dada | PerlJam: ok, thanks | ||
mauke | it parses | ||
dada | mauke: but it breaks sub calls using it | 18:05 | |
I mean something like: | |||
sub foo($x, $y, $z) { ... } | |||
PerlJam | There are many things that pugs parses that don't seem to actually work. | ||
dada | my @a = (1,2,3); | ||
print foo(*@a); | |||
my next question will be: where should I look to implement it? | 18:07 | ||
PerlJam | dada: most of the action happens around Parser.hs, Eval.hs, and Prim.hs | 18:09 | |
dada | another one | 18:19 | |
nothingmuch | morning | ||
dada | (feel free to kick me when I've reached my question quota) | ||
PerlJam | there's a quota? ;) | 18:20 | |
theorbtwo | Nobody minds, dada. | ||
dada | PerlJam: I will know when I will reach it :-) | ||
my($a, $b, $c) = (1,2,3); print "A=$a B=$b C=$c\n"; | |||
this one should print: A=1 B=2 C=3, right? | |||
nothingmuch | questions provoke thought | ||
PerlJam | dada: feel free to start using say rather than print :) | ||
dada | PerlJam: touchōæ½xE9 | ||
theorbtwo | BTW, the perl6ish way would be s/print/say/, s/\\n//, but that's not important. | ||
PerlJam | dada: It should, but I bet it prints A=1 2 3, B= C= | 18:21 | |
dada | nope | ||
PerlJam | no? | ||
dada | it prints A=1 2 3, B=1 2 3, C=1 2 3 | ||
PerlJam | dada: bizarro. | ||
theorbtwo | Indeed. | ||
PerlJam | Are you going to fix that one too? | ||
:) | |||
nothingmuch | dada: that's a bug | ||
autrijus knows | |||
it's tested in t/op/array.t | 18:22 | ||
dada | it's tested? | ||
nothingmuch | uhuh | ||
down at the bottom | |||
theorbtwo | As a todo, that is. | ||
nothingmuch | i comitted today or yesterday | ||
nothingmuch can't remember | |||
dada | ahhh I should checkout the svn | ||
I'm working with 6.0.10 right now :-) | |||
theorbtwo | Yeah; in a project that moves as fast as pugs, the last release is always out of date. | ||
luqui | tests like that ought to be failing | ||
not todofailing | 18:23 | ||
PerlJam | indeed. | ||
theorbtwo | Agree. | ||
nothingmuch | i thought that was 'fixed' a while ago? | ||
PerlJam | luqui: We just need to make sure to draw the line between "not yet implemented" and "implemented, but broken" in bright neon :) | ||
luqui | right | 18:24 | |
any other todos that are really bugs (I'm going through and untodoing them) | 18:25 | ||
nothingmuch | luqui++ | ||
i made many | |||
lumi | What's missing for "use"? | 18:34 | |
dada | lumi: PACKAGE->import and the whole OO subsystem (I guess) | 18:35 | |
lumi | It's a method call on a package object? | 18:36 | |
PerlJam | you don't need OO to get use | ||
you need BEGIN {} though | |||
lumi | I thought just modules, begin blocks and method calls | ||
dada | lumi: PACKAGE->import was the perl5 equivalent, sorry | ||
theorbtwo | Calling PACKAGE::import would be good enough for many users. | ||
lumi | Or sub calls, ignore me | ||
All Java and no Perl makes lumi something something | 18:37 | ||
theorbtwo | PACKAGE::import(~PACKAGE) even better. | ||
dada | nothingmuch: I can't seem to find your stuff at the end of t/op/array.t | 18:38 | |
nothingmuch: the only difference between 6.0.10 and latest svn is the "new arrays are empty" test | 18:39 | ||
nothingmuch | err | 18:40 | |
sorry | |||
t/op/assign.t | |||
that's another bug | |||
=) | |||
lumi: BEGIN is going to be hard work | 18:41 | ||
dada | nothingmuch: ok, thanks | ||
nothingmuch | objects not that hard, but much has to be done beforehand | ||
lumi | Okay.. | ||
luqui | untodoed stuff, r512 | ||
off to class | 18:42 | ||
nothingmuch | ciao luqui! | ||
theorbtwo | You should have a second pair of tests there: { my $foo='foo'; my $bar='bar'; ($foo, $bar)=($bar, $foo); is($foo, 'bar', 'flip'); is($bar, 'foo', 'flop'); } | ||
lumi | About array slices, what should @foo[1,3] = @foo[3,2,1] do? | 18:44 | |
theorbtwo | p5 psuedocode: @oldfoo=@foo; $foo[1]=$oldfoo[3]; $foo[2]=$oldfoo[2]; # undef = $foo[1] is nop. | 18:45 | |
lumi | Just a normal list assignment? | 18:46 | |
And lhs @foo[1,2] would be Totally Different? | |||
nothingmuch | why aren't we optimising? | 18:48 | |
theorbtwo | I should think it'd just be normal list assignments all around. | 18:49 | |
nothingmuch | ghc -O3 made things run much much faster | ||
i'd say about 3x | |||
lumi | So a slice assignment is never a splice? | ||
PerlJam | lumi: no way. | ||
nothingmuch | theorbtwo: tests where? | 18:50 | |
dada | nothingmuch: "Early optimization is the root of much evil" | ||
theorbtwo | At the bottom of t/op/assign.t | ||
lumi | So what's awaiting cabal clarification? | ||
nothingmuch | it's not premature | ||
the test run is slow | |||
and the optimisation is by GHC | |||
PerlJam | @foo[1,3] = @foo[3,2,1] would be the same as @foo[1,3] = @foo[3,2] which would be the same as @foo[1] = @foo[3]; @foo[3] = @foo[2]; | 18:51 | |
nothingmuch | i don't run the debugger, so what do i care if it's optimised | ||
PerlJam | lumi: there was some problem with the slices that I don't remember the specifics of off hand. | ||
nothingmuch | not a single line of code changed, but lots to be gained | ||
lumi | @foo[1,2] = (1,2,3) is not a splice then | ||
PerlJam | oh! that's what needed clarification. (1,2,3) is said to be synonymous with [1,2,3] | 18:52 | |
If that's true, then @foo[1,2] = (1,2,3) is the same as @foo[1] = [1,2,3]; | |||
lumi | Ahh um | 18:53 | |
integral | so you'd need a star on the RHS or the LHS? | ||
lumi | Disturbing | ||
PerlJam | Though I can't imagine that's the way it should work. | ||
dada | PerlJam: no, it's not synonymous | ||
*[1,2,3] is synonymous with (1,2,3) | |||
theorbtwo | That'd be very distrubing to me as well. | ||
nothingmuch | it's not star, it's got a funky name | 18:54 | |
unary splat | |||
=) | |||
dada | [1,2,3] is always an array (which could be treated as a list in list context), while (1,2,3) is always a list | ||
PerlJam | dada: [] isn't the problem, () is. $foo = (1,2,3) will make an anonymous List and assign it to $foo such that you'd be hard-pressed to tell the difference after the fact. | ||
dada | mmm | 18:55 | |
PerlJam | i.e., Larry has said that $foo = (1,2,3); $bar = [1,2,3]; are virtually the same. | ||
dada | are you sure it should make an anonymous list? | ||
oh, ok then :-) | |||
PerlJam | dada: I'm not sure of anything :-) | ||
lumi | So, an array in scalar context is an array ref, and a list in scalar context is ALSO an array ref? | ||
nothingmuch | yep | 18:56 | |
lumi | That's really overloading =... | ||
dada | and what should $foo = *@arr do? (supposing @arr contains (1,2,3)) | ||
nothingmuch | i would guess same as @arr[0] | ||
lumi | So you'd need to splat the list to do the array slice assignment, which would make it plain what's going on, but if you don't splat it's confusing | 18:57 | |
PerlJam | dada: in the absense of other contextual specifiers, I'd say it should do the same thing as $foo = 1,2,3; | ||
nothingmuch | like foo(*@a), with sub foo ($x, *@a) will yield $x = @a[0], @a = ... | ||
PerlJam: except that comma operator now behaves differently in scalar context | |||
dada | ouch | ||
nothingmuch | also doing magical list ref things, i think | ||
PerlJam | nothingmuch: well, comma is our new list constructor, not () | 18:58 | |
but yeah. | |||
anyway, there's much confusion to be had here :-) | |||
theorbtwo sighs, and hopes that when Larry sees some of this stuff, he will come to his senses. | |||
PerlJam | theorbtwo: I don't want Larry to come to his senses, I want him to come to *my* senses ;-) | 18:59 | |
theorbtwo | Even better. | ||
PerlJam | In reality I'm sure his senses and my senses will meet somewhere in the middle. | 19:00 | |
dada | so, is there any difference between $foo = 1,2,3 and $foo = (1,2,3) ? | ||
Odin- | Unless one or the other of you had a couple of blue lumps of sugar. | ||
lumi | And ($foo) = 1,2,3 | ||
theorbtwo | I'm personally for keeping things fairly perl5ish in this circumstances, with the change of making comma in scalar context an error. | ||
PerlJam | dada, lumi: ask pmichaud or luqui when you see them. | ||
theorbtwo wonders if autrijus is in on the design-team meetings, and if he should be. | 19:01 | ||
PerlJam | theorbtwo: I don't think he is, but his presence on p6c and p6l and continual productivity with pugs is more than enough methinks | 19:02 | |
lumi | In p5, '$a = 1,2,3' eqv '$a = 1' apparently | ||
I thought it would be eqv $a = 3 | |||
PerlJam | i.e., autrijus is driving the design simply by trying to implement it. | ||
lumi: why? | |||
mauke | lumi: precedence | ||
PerlJam | $a = 1,2,3 == ($a = 1),2,3 | 19:03 | |
jsn | ($a,undef,undef)=(1,2,3) | ||
lumi | Because isn't , the 'eval and forget it, I have something else for ya'? | ||
PerlJam | lumi: read what mauke said again :) | ||
lumi | Of course | ||
I thought it bound stronger then | 19:04 | ||
theorbtwo | perl -MO=Deparse,-p -e '$a=1,2,3' | 19:05 | |
mauke | !deparse $a=1,2,3 //huhu | 19:06 | |
(($a = 1), 2), 3 | |||
lumi | Okay, $a = (1,2,3) does what I thought | ||
Huh? | |||
19:06
Aankh|Clone is now known as Aankhen``
|
|||
lumi | Would that work for me? | 19:06 | |
Khisanth | hrmm | 19:07 | |
lumi | !deparse $a = (1,2,3) | ||
mauke | $a = ((1, 2), 3) | ||
it's a C(++) deparser, though | |||
it just happens to work with some of perl's expressions | |||
lumi | Oh, not as good | ||
It gets the right answer, but without the pretty | |||
($a = ('???', '???', 3)); | |||
Pretty! | 19:08 | ||
Khisanth | $foo ~= "bar" is not the perl5 equivalent of $foo .= "bar" is it? | ||
dada | Khisanth: I think it is | ||
theorbtwo | AFAIK, it is. | ||
Khisanth get readys for more fun bugs people will be asking in #perl :) | |||
lumi | I codified my understanding of array slice assignment, what mote I do with it? | 19:09 | |
theorbtwo | 1) Make it into tests. | ||
lumi | That's the codifying | ||
theorbtwo | 2) Post it to p6l with an "is this right" question. | ||
integral | Khisanth: you use ~~ for regexp matching | 19:10 | |
Khisanth | hmm | ||
integral | Khisanth: plus you can kick those people to #perl6 ;-) | ||
Khisanth | integral: once perl6 is out, I assume they would just merge :) | ||
integral | Khisanth: 'perl6 is out' 8-)... that's the thing | 19:11 | |
mauke | System.out.perl6 | ||
Khisanth | integral: no it isn't | 19:12 | |
by out I mean fully designed and implemented! | |||
integral | sure, and that's going to be after lots of newbies turn up | ||
PerlJam | Khisanth: The only fully designed and implemented language is latin. | ||
Juerd | Not really | 19:13 | |
mauke | even perl5 isn't fully designed or implemented | ||
Juerd | Latin has many weird exceptions and irregular words | ||
integral | Juerd: but those are designed and implemented... | ||
Khisanth | PerlJam: well not long ago it wasn't even sure what all the builtin functions would be :) | ||
Juerd | mauke: How can something without design not be fully implemented? :) | ||
PerlJam: Now if you meant Esperanto... :) | 19:14 | ||
Khisanth | and that might still be the case! | ||
Juerd | s.meant.said. | ||
obra | logban | ||
Juerd | integral: Not quite designed | ||
mauke | Juerd: I didn't say it had no design :-) | ||
Juerd | obra: s/g/j/ | ||
obra | lojban | ||
thinko | |||
Juerd pets obra | |||
My brain still hurts from typing my last message to p6l | 19:15 | ||
The syntax for subs with traits just sucks | |||
dada | Juerd: well, at least java/C#/etc. counterpart sucks too :-) | 19:16 | |
Juerd | Certainly | 19:17 | |
PerlJam | Juerd: I'm waiting for Larry's reply. (unless he said everything he was going to say with his other reply) | ||
Juerd | Larry has replied several times in that thread already | ||
Hm, the \ is wrong | 19:18 | ||
PerlJam | not specifically to your post (at least it hasn't shown up in my inbox yet) | 19:19 | |
Juerd | As t, i, u and q are not mirrored | ||
metaperl_ | that was an interesting interview on perl.com | 19:21 | |
Juerd | metaperl_: It in fact still is. | 19:22 | |
nothingmuch needs help with YAHT | 19:31 | ||
excercise 3.10 | |||
i wrote the function that reads numbers | |||
it stops correctly | |||
it returns a list of numbers | |||
mauke | is there a text or html version of YAHT? | 19:32 | |
nothingmuch | not that I know of | ||
mauke | I don't want to start a gui just to read pdfs :/ | ||
nothingmuch | pdf2ascii? | ||
it's not specific to the excercise | |||
now i want to print it | |||
from main = do.... | |||
i say nums <- readNumbers | |||
which is ok | |||
and the putStrLn nums | 19:33 | ||
which is not | |||
integral | show? | ||
mauke | nums doesn't look like a string | ||
nothingmuch | Expected type: IO () | ||
Inferred type: t -> t1 | |||
mauke | hmm, can you post a complete example? | 19:34 | |
nothingmuch | nothingmuch.woobling.org/yaht/ | ||
ignore show_fact, etc | 19:35 | ||
they're not even test yet | |||
i assume i'll need ++ show n ++ " is " ++ show factorial n | 19:36 | ||
but i'm not there yet | |||
mauke | Probable cause: `putStrLn' is applied to too many arguments in the call (putStrLn show head nums) | ||
yay for ghci | |||
function application is left associative | |||
nothingmuch | ah! | 19:37 | |
mauke | map f list means (map f) list, not map (f list) | ||
nothingmuch | ok, next issue | 19:40 | |
reload =) | |||
mauke | factorial 0 = 1, btw | 19:42 | |
nothingmuch | 1 isn't correct? | ||
i don't see why | |||
is it a definition issue? | |||
mauke | factorial 0 is defined as 1; factorial 1 = 1 follows from that | 19:43 | |
nothingmuch | ah, ok | ||
because otherwise factorial 0 will just not work | |||
Expected type: a -> Char | 19:45 | ||
Inferred type: a -> [Char] | |||
in regards to putStrLn(map show_fact nums) | |||
lumi | Because nums is a string you read in | 19:46 | |
mauke | yes. it expected show_fact to return a single char | ||
nothingmuch | it's not a string | ||
it's a list of numbers | |||
i read(string) inside readNumbers | |||
oh | |||
mauke | because putStrLn expects a list of chars, and map returns a list of what show_fact returns | ||
nothingmuch | right, i see | ||
so i should map ++ map show_fact nums? | 19:47 | ||
lumi | You need to gather it | ||
Not map it, I think | |||
mauke | I don't know YAHT, but the definitions of my_sum and my_product can be simplified using fold, and factorial can be defined with my_product | ||
nothingmuch | err, foldr, rather | ||
or equiv | |||
lumi | Or map putStrLn if you prefer | ||
No, that's wrong | 19:48 | ||
Ignore me again | |||
mauke | sequence_ might be handy here | ||
nothingmuch | i don't know these yet | 19:49 | |
i don't see how my_product could be useful for factorial, except if you make a list of a n, n-1, n-2 .. 1 | 19:50 | ||
and my_product that | |||
mauke | exactly | ||
factorial n = my_product [1 .. n] | |||
nothingmuch | how would you write it simply? | ||
hah | |||
ok, well, i'm lacking on syntax | |||
i thought i'd need to generate the range myself | 19:51 | ||
mauke | there's nothing wrong with your definition, though | ||
nothingmuch | i prefer yours | ||
i like conciseness | |||
mauke | hahahaha | 19:52 | |
your definition of my_product is subtly wrong | |||
nothingmuch | it's now 'foldr (*) nums | 19:53 | |
not yet tested | |||
mauke | no, the old version | ||
nothingmuch | i don't recall if i must wrap * in () | ||
how was it wrong? | |||
hold on, undoing | |||
did i return 0? | |||
lumi | It had [] as 0, should be 1 | ||
nothingmuch | =) | ||
it worked, though | |||
mauke | lumi: right, but why did my_product [1,2] work? | ||
lumi | Heh | 19:54 | |
Two wrongs DO make a right :) | |||
nothingmuch is curios | |||
shapr | rgh | 19:55 | |
nothingmuch | hola shapr | ||
lumi | Pax | ||
shapr | y0 | ||
theorbtwo | And a grrr so you. | ||
s/so/to/ | |||
mauke | nothingmuch: you used product instead of my_product in the recursion | ||
nothingmuch | ah | ||
hehe | |||
=) | |||
hmm | 19:58 | ||
lumi | I'm not getting it to work | 19:59 | |
nothingmuch | foldr (++) [ "string", "foo" ] | ||
what is this supposed to do? | |||
Juerd | I hope that's not Perl | ||
nothingmuch | i gather "string ++ "foo" | ||
qmole | lol | ||
nothingmuch | haskell, Juerd =) | 20:00 | |
Juerd | Pfew | ||
Darren_Duncan | I'm back up | ||
nothingmuch | but the type is different | ||
Darren_Duncan | Quick question. I reviewed part of the logs for this #perl6 ... | ||
Should I upload my Locale-KeyedText to /modules now rather than /ext ? | |||
nothingmuch | yes, you should | 20:01 | |
i think | |||
ask ingy to be sure | |||
obra | what's that do? | ||
Darren_Duncan | is ingy here now? | ||
ingy | hola | ||
Darren_Duncan | certainly, LKT isn't a core module, which seems to be what the thing I read said /ext is now for | ||
nothingmuch | how do i concatenate a list of strings in haskell? | 20:02 | |
i expected foldr (++) ["string", "string"] to work | |||
but it does something else | |||
ingy | ext is for core bootstrapping stuff, modules is what you want | ||
mauke | nothingmuch: foldr (++) "" [...] | ||
nothingmuch | oh, right, because (++) is infix | 20:03 | |
Darren_Duncan | be held for that, or did it already happen | ||
? | |||
something I wrote got cut off ... | |||
nothingmuch | yay, i managed to get it right! | 20:05 | |
thanks mauke! | |||
thanks lumi, sort of ;-) | |||
Darren_Duncan | I saw a comment about Pugs 6.0.11 wanting to be released soon ... | ||
Can this be held off until I get my Locale-KeyedText in? I can drop everything else coding wise and get it in today. | |||
Or was it not going to go out that quickly? | 20:06 | ||
nothingmuch | releases are weekly | ||
obra | What does Locale-KeyedText do? | ||
is it a Locale::MakeText-alike? | |||
nothingmuch | and most people who will muck with Locale-KeyedText will prolly be using svn | ||
mauke | nothingmuch: putStr $ unlines $ map show_fact nums | ||
nothingmuch | let facts = map show_fact nums | ||
let line = foldr (++) "" facts | |||
putStrLn line | |||
Darren_Duncan | It was meant to be used partly as an integration test for Pugs support of Perl 6 | ||
nothingmuch | that's what i'm doing at the moment | ||
i will elegentaize it | 20:07 | ||
Darren_Duncan | A complete Perl 5 version is on CPAN, I was going to port it | ||
nothingmuch | Darren_Duncan: i wouldn't rush it | ||
Darren_Duncan | it depends on features that Pugs hasn't implemented yet | ||
nothingmuch | so i start porting | ||
and keep going | |||
Darren_Duncan | was going to be a todo type thing ... originally I was told to put it in /ext, but then there was deveopment to say use /modules instead | 20:08 | |
lumi | Why isn't it working as putStrLn ( foldr (++) "" map show_fact nums) ? | ||
nothingmuch | it si, i just did that | ||
not exactly that | |||
but before i had some trouble, so i broke it down to find out exactly where | |||
mauke | lumi: missing parens | 20:09 | |
Darren_Duncan | obra, Locale-KeyedText is for localizing programs, where all user text is looked up by non-descriptive keys, rather than looking up language B using language A | ||
mauke | lumi: foldr (++) "" (map show_fact nums) | ||
nothingmuch | (map show_fact nums)... | ||
ah | |||
Darren_Duncan | and the locale data is stored in Perl files that are essentially just one large hash declaration | ||
obra | couldn't you do that with Locale::MakeText? | ||
mauke | huhu, main = readNumbers >>= putStr . unlines . map show_fact | ||
Darren_Duncan | MakeText does the job differently | 20:10 | |
obra | What's cool about KeyedText? (I do a fair amount of loc stuff for RT) | ||
Darren_Duncan | they tackle the same problem domain, sure, but are very different in method, I think | ||
let me get back to you on details | 20:11 | ||
obra | ok | ||
nothingmuch | mauke: want to look at the final result, to see if you have any suggestions for improvement? | ||
Darren_Duncan | obra, one of the main differences is complexity | 20:12 | |
KeyedText is waaaay simpler | |||
mauke | nothingmuch: yeah | ||
Darren_Duncan | and completely self-contained | ||
nothingmuch | reload | ||
obra | oh? I had no complexity issues with L::M | ||
mauke | do you really need the hSetBuffering stdin LineBuffering part? | ||
Darren_Duncan | this is with "first appearance complexity" | ||
nothingmuch | err, that's what the book said | ||
obra | and L:M:L made it so that random translators can cope nicely too ;) | 20:13 | |
nothingmuch | cargo culting | ||
i didn't even try without | |||
obra | they didn't like it when I handed them perl hashes ;) | ||
Darren_Duncan | my module does less, and does it differently | ||
nothingmuch | perhaps ghci has made it unnecessary since? | ||
obra | ok :) | ||
nothingmuch | i understood that without it the prompt lines will not be outputed before reading | 20:14 | |
since STDOUT will be in block buffering mode | |||
Darren_Duncan | See search.cpan.org/dist/Locale-KeyedTe...yedText.pm and you should get an idea from the synopsis, which is short but a completely working example. | 20:15 | |
mauke | nothingmuch: huh? hSetBuffering stdin shouldn't affect stdout at all | ||
Darren_Duncan | Don't get me wrong, Maketext I'm sure is quite useful, just too complex for my, and probably many other peoples' needs. | ||
mauke | show(n) is pointless; show n reads better | ||
nothingmuch | ooh, you're right | ||
i wonder if i wrote stdin because i am loopy | 20:16 | ||
or whatnot | |||
i'll reread the explanation | |||
Darren_Duncan | Locale-KeyedText is inspired by the Mac OS X localization system for Cocoa apps. | 20:17 | |
but all data files are pure Perl | |||
nothingmuch | from yaht: 'The necessity for this is because, when GHC reads input, it expects to read it in rather large blocks. A typical personās name is nowhere near large enough to fill this block. Thus, when we try to read from stdin, it waits until itās gotten a whole block.' | ||
so just the other way around | |||
the tty is probably already line bufferred | |||
but reading will block till whatever | |||
oh i dunno, i'll learn all this stuff later | 20:18 | ||
Darren_Duncan | anyway, I have some non-coding work to do around here for a few hours so have to get off ... see you later | ||
shapr | I'm having a build problem with the ghc 6.4 debs. Is it possible the darcs repo is behind the svn? | ||
nothingmuch | ? | ||
could be shapr | |||
but there weren't any build problems today, iirc | |||
you should see about 20 syncup messages from today | |||
shapr | src/Internals.hs:18:4: \n Conflicting exports for `getEnvironment': | ||
I'll check the darcs changes, good point. | 20:19 | ||
mauke | nothingmuch: concat ["foo", "bar", "baz"] | ||
nothingmuch | ah | ||
easier than foldr | |||
mauke | $ is a pretty cool operator | 20:21 | |
nothingmuch | what's unlines? | ||
mauke | join("\n", @_), "\n" or join '', map "$_\n", @_ | 20:22 | |
perl5 syntax :-) | |||
sorje | Prelude> unlines ["abc", "cde"] | 20:23 | |
"abc\ncde\n" | |||
nothingmuch | and $? | ||
'$' | |||
Juerd | I want unary ~ to join on '', not ' '. | ||
Can anyone think of a reason it should join on ' '? | |||
sorje | a $ b x = a(b(x)) | ||
mauke | $ is function application: f $ x calls f with an argument of x | ||
Juerd | Joining on '' is much more common I think | ||
sorje | Oh, we're not talkine haskell here. ;-) | ||
nothingmuch | so it's basically to disambiguate calls? | 20:24 | |
i think i'll be learning of that later | |||
sorje: sorry! | |||
mauke | nothingmuch: watch this: rafb.net/paste/results/OjaFAF33.html | ||
nothingmuch thinks he earned a little credit though, writing lots of perl6 these last few days, and now needs to cover some haskell to complement | |||
is it more interesting than just shorthand for a(b x)? | 20:25 | ||
mauke | I think it looks cleaner than many nested parens | 20:26 | |
nothingmuch | but it's got no magical whiz bang i'm missing, right? | 20:27 | |
mauke | nope: f $ x = f x | ||
nothingmuch | ok | ||
ingy | witheo `split`? | 20:37 | |
witheo foo = "What is the haskell equivalent of " : foo : "?" | 20:39 | ||
mauke | Couldn't match `[Char]' against `Char' (Expected type: [[Char]]; Inferred type: [Char]) In the expression: foo : "?" | 20:41 | |
nothingmuch | eh? | ||
ingy | yeah I suck | ||
theorbtwo | s/:/++/g | ||
Er, s:all/:/++/ | |||
ingy | sooo anyway... witheo split?? | 20:42 | |
okok | 20:44 | ||
What is the Haskell equivalent of Perl's split()? | |||
mauke | hmm, there doesn't seem to be one in the standard prelude | 20:45 | |
ingy | (I was preoptimizing :) | ||
mauke | split / / and split /\n/ are words and lines, respectively | ||
ingy | surely this is a very common operation | 20:46 | |
str.gmatch ? | 20:52 | ||
theorbtwo | Just read the source: | 20:54 | |
lines s = let (l, s') = break (== '\n') s; in l : case s' of {[] -> []; (_s'') -> lines s'') | 20:55 | ||
ingy | I do read the source, I'm just not over the lambdacamel hump, iykwim | 20:56 | |
theorbtwo | Ah. | 20:58 | |
I'm not either, which is why I'm not actually sure what that function that I just quoted does. | |||
...or even if I onelinerified it properly. | 20:59 | ||
ingy | this page seems helpful: pleac.sourceforge.net/pleac_haskell/strings.html | ||
dada | Data.PackedString seems to have a split (soft of) | ||
sorje | ingy, No! Don't read pleac! ;-) | 21:00 | |
ingy | ? | ||
sorje | That one's really really dangerous. It redefines large parts of haskell's Prelude | 21:01 | |
dada | splitAtPS :: Int -> PackedString -> (PackedString, PackedString) | ||
mmm no | |||
splitPS :: Char -> PackedString -> [PackedString] | |||
this one looks better | 21:02 | ||
ingy | sorje: oh | ||
lumi | What does that ' do? | 21:04 | |
PerlJam | lumi: nothing, it's just part of the name | ||
lumi: read "s-prime" | |||
lumi | That oneliner looks broke though | 21:06 | |
Hm, it makes sense | 21:11 | ||
metaperl_ | why isnt multi a subroutine attribute? | 21:26 | |
could you just have multi and not multi sub for brevity? | 21:27 | ||
PerlJam | metaperl_: because its multi-ness is more important than that, so the multi keyword needs to be out front for all to see. | 21:28 | |
metaperl_ | and why not just the word multi? | ||
PerlJam | At some level though, it probably is a trait on the sub. | ||
metaperl_: for what a multi-method or a mult-sub? | 21:29 | ||
metaperl_ | I dont even know the diff between those. I think I should keep my mouth shut. | ||
lumi | Woohoo, I just wrote split in haskell! | 21:35 | |
Do I get candy? | |||
PerlJam | lumi: is is commited to the repository as a stub for perl6's split? | 21:36 | |
mauke | my split is incomplete. its handling of trailing null fields is kind of broken. | 21:40 | |
lumi | It's really not good enough, it's just an extension of "lines" really | 21:43 | |
rafb.net/paste/results/X7ITRM95.html | 21:44 | ||
My first haskell ever, too | |||
sorje | perl6's split doesn't need real regular expressions anymore? | 21:47 | |
mauke | my split: rafb.net/paste/results/JD6Zpq37.html | ||
warning: don't try split "" "abc" | |||
lumi | There aren't re yet, right? | 21:53 | |
buu | sorje: What does it need? | ||
PerlJam | lumi: Not yet. | 21:54 | |
lumi: It would be really cool if there were however. | |||
sorje: sure it does. They've just been expanded to include whole grammars and are now called "rules" | 21:55 | ||
lumi | There already is a much better split stub than mine, and I think it just wants a rule engine and it can become live | ||
ingy | lumi: ou only split on a single char? | ||
s/ou/you/ | 21:56 | ||
mauke: can I add your split top pugs? | 21:58 | ||
mauke: can I add your split to pugs? | |||
mauke | ingy: wait a second, I'm still trying to fix the trailing null field problem | ||
ingy | mauke: can you commit? | 21:59 | |
mauke | no | ||
ingy | ok, fix it and i will | ||
I could really use it :) | |||
lumi | Yes, but I'll get better! | 22:00 | |
ingy | lumi++ | ||
lumi | Actually it splits on any list, with any predicate, it's completely different from the Perlish split | 22:03 | |
PerlJam | splits on any list? | 22:08 | |
oh, you mean it will split any list | |||
lumi | Yeah | ||
mauke | ingy: rafb.net/paste/results/lhQymz87.html | 22:09 | |
this one seems to work | |||
and I added a special case for split "" | |||
ingy | mauke: cool | 22:17 | |
PerlJam | mauke: *Main> split "abc" "abc" | ||
["",""] | |||
somehow I don't think that's right :-) | 22:18 | ||
mauke | you're thinking wrong | ||
ingy | seems right to me | ||
PerlJam | sure. | ||
*Main> split "abcabcabc" "abc" | 22:21 | ||
["abc"] | |||
I guess I'm just having trouble reconciling certain behavior :-) | |||
oh wait, I got those backwards | |||
lumi | That's passing strange | ||
PerlJam | never mind | ||
PerlJam is having a good old monday | |||
lumi | Oh doh | ||
You melt my brain | |||
I don't like 'isPrefixOf'/'drop' | 22:22 | ||
Can't that happen at once? | |||
Limbic_Region | mauke - out of curiosity, does it support capturing parens ;-) | ||
lumi | Like, at the same time | ||
mauke | perl -wle 'print "[$_]" for split /abc/, "abc", -1' | ||
hahaha | |||
ingy | mauke++ | 22:25 | |
PerlJam | mauke++ indeed. | ||
mauke | lumi: I just assume the compiler is smart enough to optimize it | 22:26 | |
ingy | mauke: thanks. applied. | ||
mauke | w00t, my first perl6 patch. and I haven't even used pugs yet! | 22:27 | |
lumi | Cool, non-obvious behaviour but correct | 22:28 | |
PerlJam | well, it's a pugs patch | ||
mauke | er, yeah | ||
lumi | I meant in p5 | ||
lumi reparses | |||
22:32
edgewalk1r is now known as edgewalker
|
|||
ingy | anyone using windows for pugs? | 22:32 | |
lumi | Going home | 22:33 | |
ingy | mauke: I just used your patch!! | 22:35 | |
it is totally rockin | |||
fixPath path = concat $ | 22:36 | ||
intersperse config_file_sep $ | |||
split "/" path | |||
buu | ingy: I am | 22:37 | |
ingy | fixPath "../../blib6/lib" | ||
buu: one sec | 22:38 | ||
buu | ingy: Too bad I don't have nmake | ||
Limbic_Region | buu - why not? | 22:40 | |
ingy | bu: download.microsoft.com/download/vc1...make15.exe | ||
buu | ingy: Yes, I've downloaded that about 10 times | 22:41 | |
It Don't Work! | |||
ingy | what OS? | ||
Limbic_Region | download.microsoft.com/download/vc1...make15.exe | ||
hmm - that's what I used too | |||
buu | windows2000 | ||
ingy | hahaha | ||
Limbic_Region: jinx | |||
buu | Limbic_Region: For some reason nmake dies when ever it tries to spawn a process. | ||
Limbic_Region | buu - let me try it - I am also running Win2K | ||
buu | Limbic_Region: I'm sure it'll work fine for you, it used to work fine for me =/ | 22:42 | |
Limbic_Region | ingy - I only pasted mine to see if it was the same as yours | ||
ingy | Limbic_Region: could you test 'pugs -V' with r515 | ||
should read ..\..\blib6 instead of ../../blib6 etc | |||
Limbic_Region | might take me a bit - I haven't been playing with pugs, only lurking | ||
ingy | oh | 22:43 | |
Limbic_Region | no cvs repository right - only darcs (wtf is that anyway) and subversion? | ||
oh - and I would be doing it under Cygwin anyway since I don't have mingw (unless all I need is GHC)? | 22:44 | ||
ingy | pugs does not support cygwin | 22:45 | |
Limbic_Region | right - I knew that - which is why I haven't played | ||
but back to my original question | |||
is mingw needed or just GHC (which I do have installed) | |||
mauke | src/Main.hs:159: Variable not in scope: `config_file_sep' | 22:47 | |
hmm, where is config_file_sep defined? | 22:48 | ||
ingy | Config.hs | ||
mauke | nope, not there | ||
Limbic_Region | ingy - downloading svk client now (and my bandwidth is missing for some reason) | 22:49 | |
buu | Limbic_Region: All you need is ghc | ||
and nmake | |||
and perl | |||
ingy | mauke: it is autogenerated :P | ||
mauke | grep -r config_file_sep . | 22:50 | |
./src/Main.hs: intersperse config_file_sep $ | |||
ingy | mauke: see Makefile.PL and utils/PugsConfig.pm | ||
mauke: it is autogenerated!!! | |||
mauke: run perl Makefile.PL and you'll see Config.hs | 22:51 | ||
:) | |||
mauke | that's what I did (after darcs pull) | ||
hmm, make clean && perl Makefile.PL && make seems to work | 22:52 | ||
ingy | well yes, you should always make purge | ||
:p | |||
Limbic_Region | ok ingy - svk command line to get the r515 | 22:54 | |
s/ingy/anyone/ | 22:55 | ||
revdiablo | Limbic_Region: the standard svn client it's svn co svn.openfoundry.org/pugs | ||
I dunno about svk | |||
ingy | svk cp svn.openfoundry.org/pugs | ||
I believe | 22:56 | ||
I hate svk ;) | |||
Limbic_Region | ok - so I assume r515 is the latest then | 22:57 | |
ingy | yep | ||
mauke | Failed 3/77 test scripts, 96.10% okay. 27/1242 subtests failed, 97.83% okay. | ||
is that normal? | |||
ingy | hmmm | 22:58 | |
paste it somewhere | 22:59 | ||
Limbic_Region | WTF - it has to commit every freaking version from 1 to 515? | 23:01 | |
ingy | Limbic_Region: just cp head | ||
not all | |||
Limbic_Region | I tried h | ||
it didn't seem to work | |||
ingy | hmmm. I hate svk | ||
Limbic_Region | me too | ||
ingy | use svn | 23:02 | |
Limbic_Region | ok | ||
buu | svk-- | 23:03 | |
ingy | svk++ (but I still hates it) | ||
mauke | make test output: rafb.net/paste/results/PJ15PO94.html | 23:04 | |
it fails assign.t, auto.t and not.t | |||
oh, and "dimention" isn't a word (see t/op/hyper.t) | 23:05 | ||
Limbic_Region | ok - silly question but where would I go find the files svk retrieved for me? | ||
buu | Why did you use svk? | 23:06 | |
Limbic_Region | because no one spoke up and suggested an alternative when I asked | ||
buu | I thought someone said svn, but I guess not | 23:07 | |
ingy | what function is [a, b] -> (a, b) | 23:08 | |
mauke | what is [a, b]? | 23:09 | |
ingy | wait, nm | ||
Limbic_Region | ingy - I guess you can't even use a Cygwin Perl to build the makefile - sorry | 23:15 | |
C:\ghc\pugs\pugs>perl Makefile.PL | |||
132 [main] perl 1400 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION | |||
805 [main] perl 1400 open_stackdumpfile: Dumping stack trace to perl.exe.stackdump | 23:16 | ||
*shrug* - oh well | |||
buu | Limbic_Region: Nope | 23:22 | |
Limbic_Region | well, I am not installing AS and I don't believe I have built my own copy using mingw | 23:23 | |
ingy | how do I cast a String to [Char] ? | 23:24 | |
buu | Limbic_Region: What's wrong with AS? | 23:26 | |
mauke | ingy: String is an alias for [Char] | ||
ingy | mauke: can you look at my feeble code? | 23:31 | |
mauke | where? | ||
ingy | perlbot: nopaste | ||
perlbot | Paste your code here and #perl will be able to view it: sial.org/pbot/perl | ||
pasteling | "ingy" at 24.19.10.51 pasted "p5libs <- mapM fixLib $ catMay" (3 lines, 182B) at sial.org/pbot/7958 | 23:32 | |
Limbic_Region | buu - nothing wrong with it - I just prefer having a single thing to try and keep updated and whatnot | ||
buu | reasonable | 23:33 | |
ingy | mauke: I'm trying to split paths on ':' | ||
I get: | 23:34 | ||
Couldn't match `String' against `Maybe b' | |||
Expected type: String | |||
Inferred type: Maybe b | |||
mauke | reads expects a string | 23:35 | |
lookup returns Maybe b | |||
ingy | mauke: I need fromMaybe | 23:37 | |
maybe... :D | |||
mauke | yeah | 23:38 |