svn switch --relocate svn.openfoundry.org/pugs svn.pugscode.org/pugs/ | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com | dev.pugscode.org/ Set by putter on 11 February 2007. |
|||
00:25
REPLeffect left
00:31
gaal joined
00:32
nwc10 left
|
|||
Coke_ | (coke & pepsi) wot now? | 00:34 | |
00:42
awwaiid joined
00:46
zipf joined
00:55
zipf left
|
|||
specbot6 | r13588 | larry++ | Clarification of coercion declarations and semantics. | 01:01 | |
rhr | Hi, I have a question about {} vs do{} in pugs/perl6 | ||
case 1: sub{ ... {warn "blah"; reutrn False; } unless something; ... } | |||
case 2: sub{ ... something or do { warn "blah"; reutrn False; }; ... } | |||
do blocks won't take modifiers so case1 can't take do | |||
but a bare closure doesn't get run in case2 ({...}.() works also) | |||
I find this confusing. Also, S06 doesn't mention do in its discussion of return afaics | 01:02 | ||
01:05
polettix joined
|
|||
svnbot6 | r15277 | lwall++ | postcircumfix methods distinguished | 01:08 | |
TimToady | attempting to use a statment modifier on something that heavy almost certainly means you shouldn't be using a statement modifier there. | 01:10 | |
and why would do need to be mentioned in the discussion of return? | 01:11 | ||
return is defined to go to the enclosing sub, skipping any non-sub blocks | 01:12 | ||
a do block is not a sub declaration | |||
is that what is bothering you? | 01:13 | ||
rhr | yeah ok :) | 01:14 | |
S06 says "explicit keyword", and do kind of fits that description | |||
TimToady | yes, I see how that can be misinterpreted. I'll glare at it... | 01:15 | |
rhr | I still don't really understand why the closure is run with unless but not with or | 01:16 | |
01:20
bones_ joined
01:25
turrepurre joined
|
|||
specbot6 | r13589 | larry++ | Clarification on what may be returned from, requested by rhr++ | 01:31 | |
TimToady | rhr: it could perhaps be construed as a bug. I can argue that both ways. | ||
rhr | what's the argument for not construing it as a bug, out of curiosity? | 01:36 | |
TimToady | a bare block where a statement expected automatically calls itself | ||
01:36
CardinalNumber joined
|
|||
TimToady | the question is whether a bare block with something after it really qualifies as a bare block. | 01:36 | |
Limbic_Region wonders how many nudist perl hackers there are | 01:37 | ||
rhr | hmm, but isn't the one that's not being run the one without anything after it? | 01:38 | |
or do I misunderstand? | |||
TimToady | it depends on whether your ... is setting up the expectation of a statement. | 01:39 | |
rhr | it should have been ...; | ||
in perl5 one-liners I often sneak a return in using a comma | 01:45 | ||
I'm just trying to update this sordid idiom :) | |||
01:47
neonse left
01:56
CardinalNumber is now known as ProperNoun
|
|||
nanonyme | hey, can you define complex structures in perl6 and then call them again like you can in C? | 01:57 | |
TimToady | I have no idea what you mean | ||
nanonyme | maybe i'm too drunk to think clearly, i'll ask again when i sober up | 01:58 | |
TimToady | k | 01:59 | |
Limbic_Region | TimToady - I believe nanonyme is referring to structs | ||
IOW, defining your own datatype | 02:00 | ||
TimToady | in that case, certainly | ||
nanonyme | exactly, that was what a friend asked me to ask earlier, i'm just too drunk to word myself properly | ||
thanks :) | |||
rhr | TimToady: I guess I was expecting perl to expect a statement for both of those blocks | 02:01 | |
TimToady | the question is how picky we are on when to supply an implicit .() after the block. | 02:02 | |
for instance, we certainly should not supply a .() if there's already one there. | 02:03 | ||
?eval { say "hi $_" }.("there") | 02:04 | ||
02:04
evalbot_r15265 is now known as evalbot_r15277
|
|||
evalbot_r15277 | OUTPUT[hi thereā¤] Bool::True | 02:04 | |
TimToady | ?eval { say "hi" } | 02:05 | |
evalbot_r15277 | OUTPUT[hiā¤] Bool::True | ||
rhr | in what way is the context different in {} if ... vs ... or {}? | ||
I guess that's my main question | |||
TimToady | or does not expect a statement after it | ||
so or {} will never supply an implicit .() for you. | 02:06 | ||
the implicit .() is only for a block used as a statement. | |||
and statement modifiers are kind of on the boundary. | |||
rhr | oh, it just wnats to return the closure right? | ||
TimToady | yes | 02:07 | |
arguably a statement modifier is both a statement as a whole and contains a statement on its left. | |||
Limbic_Region | TimToady - you are gainfully employed outside of working on Perl 6 right? And you use pugs/perl 6 in that job correct? | ||
rhr | I guess I expected differently because I don't usually use it to return a value | ||
TimToady | I work for a company called Netlogic Microsystems | 02:08 | |
whether that's "gainful" is of course subject to interpretation | |||
Limbic_Region | ok | ||
Limbic_Region is just having a friendly disagreement with merlyn on the matter | |||
TimToady | I've been known to use pugs here | ||
jdv79 | :) | ||
Limbic_Region | he said no one is using perl 6 for real | ||
and so I jokingly said he was calling you no one | 02:09 | ||
TimToady | it was for real at the time, though I ended up translating it back to Perl 5 so it'd run faster. | ||
02:10
Aankhen`` joined
|
|||
TimToady | but it's certainly a good language for at least thinking in | 02:10 | |
02:10
unop joined
|
|||
allbery_b has the minor problem that he needs to support solaris boxen as well, and, well, ghc doesn't like solaris any more | 02:10 | ||
02:10
simcop2387 joined
|
|||
TimToady | I guess it depends on what the definition of "is" is... | 02:10 | |
02:10
westymatt joined
|
|||
TimToady | speaking of cigars... | 02:11 | |
Limbic_Region has never enjoyed cigars or wine | 02:12 | ||
TimToady | I've never tried a cigar. Tried a cigaret once when I was in junior high... | 02:13 | |
allbery_b neither | |||
TimToady | I don't mind a good wine, but I'm not allowed to imbibe at the moment because I'm taking some pills that are already hard on my liver, and we don't need two people here with bad livers... :( | 02:14 | |
Limbic_Region | any news on her hepatitis? | 02:15 | |
you seem to be in the know | |||
allbery_b likes good single-malts | |||
TimToady | only what I know from her popping in here occasionally. | 02:16 | |
Limbic_Region | oh | ||
Limbic_Region searches the logs then | |||
02:17
dmq joined
|
|||
TimToady | my guess is she's gonna still be very much out of it for at least a week and subpar for considerably thereafter. | 02:17 | |
Limbic_Region | oh, but "small chance I can leave the hospital tomorrow" is in itself good news | 02:18 | |
rhr wishes he could donate an extra liver to the cause | 02:19 | ||
02:19
weinig is now known as weinig|away
|
|||
TimToady | well, I understand people can donate half livers these days. | 02:20 | |
and it may yet come to that. | |||
Limbic_Region | yeah, liver is one of the few organs that regrows | ||
TimToady | I would certainly donate half my liver to audreyt in a flash, but that would certainly be suboptimal from an age standpoint, not to mention I'm probably disqualified anyway for various reasons such as having had a transplant and various transfusions myself... | 02:22 | |
Limbic_Region is such a dolt as he hasn't been keeping her in his prayers | 02:23 | ||
TimToady | just pray once with a hyperoperator on it. :) | ||
Limbic_Region | well, I don't know how healthy my liver is but yeah | 02:24 | |
heh | |||
presumably god transcends time so it shouldn't matter when the prayer happens - casuality is just something for us humans to maintain some semblance of sanity | |||
TimToady | also, not sure what the culture of transplants is in Taiwan. I know they're rather rare in Japan, though, because it's very hard to find donors. | 02:25 | |
rhr | fascinating. Well, I'm young and have a perfectly good liver. Can they ship 'em halfway around the world on ice? :) | ||
allbery_b mi she-beirach avoteinu... | 02:26 | ||
TimToady | well, from where you are, that's over the north pole, so that's pretty icy... | 02:27 | |
allbery_b | for the moment, at least | ||
TimToady | maybe there will be a lot of spare polar bear livers available soon. :( | ||
well, must decommute | 02:31 | ||
bbl & | 02:32 | ||
02:37
mjk joined
02:38
araujo joined
02:46
justatheory joined
|
|||
westymatt | Hey I need to test for the existence of a command, but not execute it any advice? | 02:52 | |
02:56
khisanth_ joined
02:57
khisanth_ is now known as Khisanth
|
|||
allbery_b | ?eval (any(%*ENV<PATH>.split(':')) ~ "/ping") ~~ :x | 03:08 | |
evalbot_r15277 | Error: Can't modify constant item: VUndef | ||
allbery_b | hm, safemode | ||
03:15
justatheory joined
03:21
sunnavy joined
|
|||
audreyt | short update: I'll be hospitalized for another 48 hours. my liver is gradually recovering, but still requires a lot of rest. TimToady is right; I'll still be easily tired for another month or so; but fortunately I've booked all $job away, so it's all pugstime for the month to come :) | 03:44 | |
audreyt faints some more & | |||
allbery_b | yay! | 03:55 | |
audreyt++ | 03:56 | ||
04:07
Khisanth joined
|
|||
TimToady | fg | 04:08 | |
04:12
MikeJS joined
|
|||
rhr | is pipe expected to work like open e.g. my $xclip = pipe "xclip", :w; ? | 04:16 | |
[particle] | westymatt: readdir over $PATH? | 04:21 | |
04:23
[particle] left
04:24
[particle] joined
|
|||
allbery_b | my ?eval tried to work here but my pugs is a bit old for :x | 04:24 | |
TimToady | rhr: might be more like Pipe.open(:w, "xclip") | 04:38 | |
or Pipe.to("xclip") and Pipe.from("xclip") maybe | 04:39 | ||
dduncan | TimToady, did you see my question yesterday about the StrPos etc types? | 04:40 | |
TimToady | yeah, just low on tuits | 04:41 | |
dduncan | does a value of said type have meaning in isolation, and can be used with any Str, or does it only have meaning when used with a specific Str value? | ||
TimToady | only for a specific Str. | ||
dduncan | so then, its sort of like a reference type, I gather? | ||
allbery_b | IIRC different strings may have different interpretations (utf8, ascii, ...) and a StrPos needs to reflect that | 04:42 | |
TimToady | though a StrLen could know n bytes, m codepoints, o graphemes, etc. | ||
04:42
Khisanth joined
|
|||
TimToady | StrPos doesn't care as long as it points between things at the abstraction level you're concerned about | 04:42 | |
passing a byte StrPos into a routine thinking in graphemes may have to adjust the pointer or be unhappy | 04:43 | ||
I believe I speculated about all this in the original apocalypses | |||
dduncan | so, does it conceptually make sense to compare two unequal Str as to whether they are of the same length or not, without specifying "in codepoints" or "in graphemes", because StrPos or StrLen is supposed to be abstracted above which is used? | 04:44 | |
based on what I've heard, I would say no | |||
TimToady | considering there's no .length method... | ||
how would you do it without specifying | 04:45 | ||
$a.chars == $b.chars specifies chars in the current unicode level | |||
nothingmuch | Coke_ || [particle]: short update: the show was awesome. sleep now =) | 04:46 | |
TimToady | $a.bytes == $b.bytes requires the byte count to be the same, and fails if either string doesn't care to support byte ops | ||
nothingmuch | (www.last.fm/event/143933) | ||
lambdabot | Title: Sex Mob at Tonic (New York) on 16 Feb 2007 – Last.fm | ||
dduncan | as I mentioned yesterday, if you have a value of a unit-inspecific such as a "velocity" or a "temperature", you can do things with multiple values of said such as compare if one is faster or hotter than another, without caring whether we're using Kelvins or Farenheight units | 04:47 | |
but I get the impression that StrPos etc can't be treated like those | |||
TimToady | a StrPos is a position in a particular string, so no | ||
dduncan | right, glad that's all cleared up for me | 04:48 | |
TimToady | a StrLen is not related to a particular string if you force it to tell you a number | ||
dduncan | sure | ||
TimToady | but it might be lazy about that and keep two StrPos till it knows | ||
in general we should be getting away from string lengths in the API as much as possible | 04:49 | ||
dduncan | sure ... and the current definition of StrPos|StrLen smacks of memory address offsets and such, which Perl generally abstracts us away from having to think about | 04:50 | |
TimToady | there should be a substr variant that takes two StrPos, for instance. | ||
or the lazy StrLen can see if its lazy beginning happens to be the same as the substr pos. | 04:51 | ||
then it doesn't have to count anything. | |||
allbery_b | dduncan: there's really n good way t reconcile graphemes, codepoints, byte4s, etc. | ||
TimToady | you reconcile them by choosing a good abstraction level for the default and then providing clean ways to escape the default if you need to. | 04:52 | |
and to the extent that the data types themselves allow you to escape | 04:53 | ||
dduncan | presumably, then, if we use a rule to match something, the result of executing the rule could return something analagous to StrPos, in case we want to go back and say, get the string where that matched ... or maybe this is just something that rule executions to internally, and users of rules don't have to | ||
TimToady | StrPos is precisely what it returns | 04:54 | |
if you ask for the .beg or .end of any matched thing | |||
.pos is a StrPos | |||
dduncan | so, I get the impression that for high level work, rules are the proper way to extract or work with substrings, and outside of rules, we generally treat strings as being atomic, that we just copy or compare for equality or before/after etc | 04:55 | |
04:55
xwrn joined
|
|||
TimToady | the age of fixed-width characters is largely past us, I think. | 04:55 | |
and of fixed-width strings. | 04:56 | ||
you'll note that formats are now largely obsolete for the same reason | |||
dduncan | now, maybe this is explained, but with terms like codepoints and graphemes going about, is there such a thing as a "character" with is clearly defined? | ||
or should we just say codepoints or graphemes instead of characters? | 04:57 | ||
or is "character" a convenient fuzzyness over the other terms | |||
when we want to fuzzy say what a string is composed of without going into detail | 04:58 | ||
TimToady | they're defined at the beginning of Functions.pod, of all places. | ||
Char is defined as the maximum abstraction level supported in the current lexical scope. | |||
so with "use bytes" a Char is a byte | 04:59 | ||
with "use codepoints" it's a code point | |||
dduncan | okay | ||
TimToady | by default it's a grapheme | ||
if you say "use Arabic" it's an Arabic letter, whatever that is... | |||
dduncan | I see the document now | 05:00 | |
TimToady | I believe audreyt was attempting to push this view into the Haskell community at one point, with mixed success. | 05:01 | |
ah well, Perl has to be better at something than Haskell. :) | |||
allbery_b | haskell has to figure out its unicode support first :) | 05:02 | |
and then there's problems with languages like arabic and hebrew because of haskell's case significance | |||
05:03
BooK_ joined
|
|||
allbery_b | (e.g. how do you write an uppercase letter to name a type in Arabic?) | 05:03 | |
TimToady | which is why these distinctions should only ever be conventions, not mandates | ||
dduncan | As I work on designing my DBMS, I'm liking to be both modern while being able to map to older concepts ... I am trying to make my Text type as alike to Perl 6's Str type as possible, but part of what I have to support is users declaring a Text subtype that is constrained to being within a certain length, to help with data validation ... since the DBMS spec already says that Text has the latest Unicode repertoire as its character set ... | 05:05 | |
I'm trying to make it as Perl 6 like as reasonable, given that a lot of Perl 6 features won't be in it as it is more domain specific. | 05:06 | ||
Mainly I'm focusing on features that can represent any data type, any constraint on a data type, and any common operation with such a data type ... assignment and equality comparison if nothing else. | |||
TimToady | and what do they mean when they say "length"? | ||
dduncan | I would say in practice that it is context specific | 05:07 | |
eg, a SIN is of a certain format or length | |||
or maybe bad example ... | |||
I'm trying to think of things that are practically a certain length, and are not simply a number | 05:08 | ||
Since what I'm making is intended to be abstract, I will definitely not make it possible to generically ask for the length of a character string in bytes ... unless said function also specifies "when expressed as which encoding" | 05:10 | ||
TimToady | well, maybe we can help drag database technology into the age of no arbitrary limitations. | ||
dduncan | there is no "current encoding" | ||
I'm trying to do that | |||
help always appreciated | |||
avar | TimToady: Regarding lexical scopes and such values, I've been implementing a plug-in for the regex engine in p5. When you have lexical pragmas they're defined as C<use bytes; #{ byte semantics } [ byte-using code ]; use characters; #{ character semantics } [ characters-using code]). I.e. you have to split your code/delclarations into sections but then each variable gets a "tag" saying it's in byte-mode, char-mode or in my case bound to the default regex engine o | 05:11 | |
Does p6 offer a more comportable syntax to tell a value not the block/section it's delcared in that a pragma applies to it | |||
*comfortable | |||
dduncan | in regards to constraints on a database, they exist because users want them to model a particular reality that they define, and refuse to accept input that doesn't fit ... the constraints are generally not there just to help the DBMS implement what users ask for ... | 05:12 | |
avar | I guess that's done with the type system... | ||
allbery_b | sounds like a job for has() | ||
er, no parens | |||
avar | my ByteStr $foo; my CharStr $bar; #{ pseoudcode } | ||
TimToady | every string has a minimum and maximum abstraction level it will deal with, so you can easily declare a codepoint string within a grapheme section, for instance. | 05:13 | |
yes | |||
avar | TimToady: Ah, that answers it;) | ||
dduncan | until I reread what you said about users usually thinking about text in terms of graphemes, I was intending to have one level of representation, which is simply codepoints | 05:15 | |
but I may be thinking differently now, or support both | |||
TimToady | bearing in mind also that U+10ffff is a single codepoint represented with two surrogates. | 05:16 | |
it's cheating to say that a Plane 1 character is two codepoints. | |||
?eval "\x[10ffff]".chars | 05:17 | ||
evalbot_r15277 | 1 | ||
TimToady | ?eval "\x[10ffff]".codepoints | 05:18 | |
evalbot_r15277 | Error: No compatible subroutine found: "&codepoints" | ||
TimToady | ?eval "\x[10ffff]".codes | ||
evalbot_r15277 | 1 | ||
TimToady | :) | ||
?eval "\x[10ffff]".bytes | |||
evalbot_r15277 | 4 | ||
dduncan | ?eval "a".bytes | ||
evalbot_r15277 | 1 | ||
dduncan | so, UTF-8 ? | 05:19 | |
TimToady | ?eval "\x[256]".bytes | ||
evalbot_r15277 | 2 | ||
TimToady | yes | ||
apparently | |||
allbery_b | more complex than that, though. ōæ½xD7ōæ½x91ōæ½xD6ōæ½xBCōæ½xD6ōæ½xBBōæ½xD6ōæ½x93 :) | 05:20 | |
dduncan | in any event, the first releases of my DBMS will be pure Perl and won't have to map to anything else, so I can largely ignore internals issues, and map my operators to the Perl ones directly | ||
then come back to some of these worries later | |||
allbery_b | (bet w/dagesh, qubutz, and shalshelet) | 05:21 | |
TimToady | ?eval "××Ö¼ōæ½xD7ōæ½x91ōæ½xD6ōæ½xBCōæ½xD6ōæ½xBBōæ½xD6ōæ½x93".chars | ||
evalbot_r15277 | 7 | ||
TimToady | ?eval "××Ö¼ōæ½xD7ōæ½x91ōæ½xD6ōæ½xBCōæ½xD6ōæ½xBBōæ½xD6ōæ½x93".codes | ||
evalbot_r15277 | 7 | ||
allbery_b | one grapheme (although most renderers don't handle trope markings) | ||
05:22
ashleyb joined
|
|||
allbery_b | ?eval "××Ö¼ōæ½xD7ōæ½x91ōæ½xD6ōæ½xBCōæ½xD6ōæ½xBBōæ½xD6ōæ½x93".graphemes | 05:22 | |
lumi_ | What's a shalshelet, then? | ||
evalbot_r15277 | Error: No compatible subroutine found: "&graphemes" | ||
allbery_b | hm | ||
dduncan | graphs | ||
lumi_ | "graphs" I think | ||
allbery_b | ?eval "××Ö¼ōæ½xD7ōæ½x91ōæ½xD6ōæ½xBCōæ½xD6ōæ½xBBōæ½xD6ōæ½x93".graphs | 05:23 | |
evalbot_r15277 | 7 | ||
05:23
ashleyb joined
|
|||
allbery_b | um, 3. | 05:23 | |
TimToady | I think pugs is at codepoint level currently | ||
allbery_b | trope markings like shalshelet ("chains") indicate how to chant a passage | ||
it's actually more of a syllabic than a character mark, but also indicates if and how a word associates with the next word | 05:24 | ||
...but some of them do attach to characters, not words or syllables | |||
TimToady | does Unicode consider them combining characters? | 05:25 | |
tene | ?eval "unicode".syllables | ||
evalbot_r15277 | Error: No compatible subroutine found: "&syllables" | ||
allbery_b | combining accents | ||
TimToady | certainly that sort of thing can change when you throw in a "use Hebrew" | ||
which presumably changes the abstraction level from language-independent graphemes to hebrew characters | 05:26 | ||
allbery_b | on the one hand, you're not going to have to deal with trope too often; on the other hand, I already have perl5 scripts which handle trope :) | ||
TimToady | I only parse ę„ę¬čŖ | 05:27 | |
rhr | so regex is a keyword now... how do you pronounce it? both hard and soft g sound wrong to me | 05:30 | |
TimToady | I use the j sound | ||
consider it encouragement to write a token or a rule instead. :) | |||
allbery_b | soft j sounds too close to "rejects" :) | ||
rhr | yeah, I thought of "rejects" too. But the alternative is a reggae expression :) | 05:31 | |
TimToady | the whole point of regex is to reject most things. :) | 05:32 | |
allbery_b | "pattern" :) | ||
05:33
BooK joined
05:36
xwrn joined
05:39
justatheory joined
|
|||
dduncan | FYI, I just updated my DBMS documentation's terminology section to specify that the term "character" specifically means "grapheme" in general, and that I would generally work in those terms, though codepoints are possibly an alternative if doing that seems necessary. | 05:43 | |
That said, is it possible for multiple sequences of codepoints to equal the same grapheme in Unicode? | |||
If so, that could give me some trouble. | |||
If not, then great! | 05:44 | ||
TimToady | depends on which canonicalization you've used | ||
dduncan | I'm just talking about within the same Unicode version ... | 05:46 | |
TimToady | in general as long as all your data uses the same canonicalization, you don't have to worry | ||
dduncan | or are there multiple canonicalizations within the same version? | ||
TimToady | yes | ||
dduncan | in that case, I should make a point of learning about canonicalizations, then declaring 1 to be the one used everywhere ... | 05:47 | |
TimToady | see unicode.org/reports/tr15/ | ||
lambdabot | Title: UAX #15: Unicode Normalization Forms | ||
dduncan | assuming you can still represent everything when using 1 canonicalization | ||
TimToady | people argue about whether NFC or NFD is better. the answer is that they're better for different things | 05:50 | |
NFC is more compact, and NFD is more future proof. | |||
dduncan | certainly, everything will use the same single encoding, or as far as users are concerned it is as if that were true ... in fact, for users, there is no such thing as an encoding, except when a Text value is explicitly mapped to/from a Blob value | 05:51 | |
TimToady | but NFD compresses down about as well as NFC does, since the information content is the same. | 05:55 | |
NFC is likelier to give you something close to one codepoint per grapheme for most national character sets. | 05:56 | ||
NFD will split out accents and such to combining characters, so you're very much in the realm of a variable width encoding in terms of codepoints per grapheme | 05:57 | ||
the default Perl approach is to simply claim that the abstraction will be maintained, even if you have to do normalization on the fly internally. | 05:59 | ||
given that Perl may be pulling in both NFC and NFD data, there's something to be said for the lazy approach. | 06:00 | ||
06:01
gaal joined
|
|||
TimToady | it does mean that $a eq $b may be doing more than just memcmp() though | 06:01 | |
but yes, to the user there is no encoding, at least until they have to send it to an API that needs to know. | 06:02 | ||
dduncan | indeed | 06:11 | |
06:13
BooK_ joined
|
|||
Aankhen`` | I asked this last night, but I guess I had to head for bed before the answer came. :-( Are there any provisions to facilitate event-driven programming in Perl 6? | 06:22 | |
TimToady | probably. we're looking at doing something like in www.seas.upenn.edu/~lipeng/homepage/unify.html | 06:31 | |
lambdabot | Title: Unifying events and threads | ||
06:32
REPLeffect joined
|
|||
Aankhen`` | TimToady: Ah, I think that was linked to in the discussion I saw. Thanks. | 06:38 | |
It had me salivating, despite my limited understanding of Haskell. | 06:39 | ||
06:45
devogon joined
06:54
ashleyb joined
06:59
ashelyb_ joined
07:22
leed joined
07:31
REPLeffect left
07:40
CardinalNumber joined
07:46
sunnavy joined
07:49
ch3o joined,
ch3o left
07:59
CardinalNumber is now known as ProperNoun
08:19
gaal joined
08:34
jisom joined
08:35
Belaf joined
08:43
theorbtwo joined
09:11
fandang0 joined
09:13
turrepurre joined
09:16
larsen_ joined
10:02
elmex joined
10:08
BooK joined
10:17
dec joined
|
|||
dec | greetings | 10:18 | |
audreyt | dec: greetings | 10:19 | |
dec | I kept reading "visit #perl6" in the topic of #perl and decided to take up the offer, finally. | 10:21 | |
Aankhen`` | There goes the neighbourhood. :-( | ||
dmq | morning | 10:28 | |
10:37
VanilleBert joined
10:39
larsen__ joined
10:58
dduncan left,
chris2 joined
11:04
foo\ joined
11:14
CardinalNumber joined
11:32
CardinalNumber is now known as ProperNoun
11:45
BooK joined
11:47
upd joined
11:55
BooK_ joined
11:56
neonse joined
11:59
unop joined
12:00
gaal joined
12:03
larsen_ joined
12:04
bernhard joined
12:08
unop left
12:13
Khisanth joined
12:14
CardinalNumber joined
12:21
BooK joined
12:33
CardinalNumber is now known as ProperNoun
12:34
BooK joined
12:45
Coke joined
12:52
gaal joined
12:56
BooK_ joined
13:14
Squern joined
13:23
BooK joined
13:39
larsen__ joined
13:40
ruoso joined
13:53
BooK_ joined
13:54
mjk joined
14:10
BooK joined
14:15
BooK__ joined
14:30
buetow joined
14:35
elmex joined
14:39
xwrn joined
14:42
Psyche^ joined
14:48
bonesss joined
14:52
iblechbot joined
14:53
Psyche^ is now known as Patterner
14:55
nOp joined,
xwrn joined
14:56
prism is now known as Administrator
14:57
Administrator is now known as prism
15:05
Psyche^ joined
15:20
diakopter joined
15:21
Psyche^ is now known as Patterner
15:31
kanru joined
15:32
BooK joined
15:38
xdg_ joined
15:45
Limbic_Region joined
16:10
kisu joined
16:20
BooK_ joined
|
|||
svnbot6 | r15278 | lwall++ | Rework categories to just be a category of their own. | 16:20 | |
r15278 | lwall++ | Swap #= and #+ just 'cuz I like 'em better that way. #+ "adds" a definition. | |||
16:37
VanilleBert joined,
turrepurre_ joined
|
|||
smash | debian virtual server is up&running | 16:43 | |
ups, wrong channnel | |||
sorry | 16:44 | ||
alas, wrong server even | 16:45 | ||
16:49
BooK joined
16:56
Alchemy joined
|
|||
diakopter | sorry to be off topic, but #perl wasn't much help - I'm looking for a module to manage application deployments and their database schema upgrades/downgrades/rollbacks/patches. Any tips? | 16:58 | |
nothingmuch | DBIC has some schema management | 16:59 | |
including versioned schemas (though I think that's still in development) | |||
westymatt | Does perl6 have a release date? | ||
nothingmuch | go to #dbix-cplass on irc.perl.org and find out more | ||
westymatt: chrstimas (year unspecified) | |||
westymatt | lol thank you | 17:00 | |
allbery_b | "when it's ready" :) | ||
westymatt | I heard its going to have strongly typed support | ||
does this mean its optional? | |||
nothingmuch | yes, fully optional | ||
westymatt | I take it no release date yet for parrot? | 17:01 | |
revdiablo | No no, the correct answer is to start a ferocious debate about what "strong typing" really means | ||
moritz | revdiablo: right. Anything less strongly typed then Eiffel is "weakly typed" </rant> ;)) | 17:02 | |
revdiablo | westymatt: Even if there was a release date, I wouldn't trust it | ||
westymatt | yeah your probably right | ||
revdiablo-debate on what strongly typed means? | 17:03 | ||
moritz | when is The Hurd's release date? duke nukem forever? Debian Etch? | ||
17:03
revence joined
|
|||
revdiablo | westymatt: Yes, "strong typing" does not have a clear definition, but... I was just being silly. I hope I haven't started the debate unitentionally =) | 17:04 | |
westymatt | no | ||
I always looked at perl 5 as being a bit strongly typed, with having @ % $ as opposed to php where everything is $ | 17:05 | ||
revdiablo | westymatt: Yeah, I agree with that. But a lot of people think "strong typing" means C-style static typing. So it's probably best to avoid the term altogether when in mixed company | ||
westymatt | personally the perl approach is much better, because type doesn't have to be a guessing game where running through others code | ||
yeah that makes sense | 17:06 | ||
revdiablo | Perl 6's typing system looks nice, though | ||
nothingmuch | part of the reason perl 6 will support type annotation is just to improve readability | ||
westymatt | yeah that is a real advantage something you lose entirely with python | ||
is parrot functional yet? | 17:07 | ||
17:07
prism is now known as daemon
17:08
gaal_ joined
|
|||
Limbic_Region | westymatt - #parrot is on irc.perl.org - why don't you join over there | 17:10 | |
in addition to hanging out here of course | |||
westymatt | well thank you | ||
17:14
jferrero joined,
westymatt joined
|
|||
svnbot6 | r15279 | lwall++ | subst and trans replacement parsing | 17:16 | |
TimToady | westymatt: would you like a commit bit? | 17:21 | |
nothingmuch | d'oh, why didn't I think of that ;-) | 17:22 | |
17:22
buetow joined
|
|||
nothingmuch is not used to people actually not having them yet ;-) | 17:23 | ||
Limbic_Region forgets too | 17:25 | ||
17:25
BooK_ joined
17:26
rindolf joined
|
|||
specbot6 | r13590 | larry++ | inconsistency spotted by Smylers++ | 17:26 | |
rindolf | Hi all. | ||
moritz | hi rindolf | ||
rafl: ping | |||
17:36
simcop2387 joined
17:38
pdcawley joined
|
|||
rindolf | Hi moritz, what's up? | 17:39 | |
17:41
VanilleBert left
|
|||
moritz | rindolf: not much, (debian) build system still fucked up and I don't understand it ;) | 17:42 | |
rindolf | moritz: Debian Build system of what? | 17:45 | |
moritz | rindolf: of pugs | ||
rindolf | moritz: I see. | ||
moritz: you mean the one that creates a .deb package? | |||
moritz | rindolf: exactly | ||
rindolf | moritz: ah. | ||
moritz: well, I don't know anything about .deb generation. | |||
Albeit I am familiar with hacking .rpm's. | 17:46 | ||
17:46
gaal joined
|
|||
moritz | rindolf: the problem is, I don't know that much as well... | 17:46 | |
rindolf | moritz: I see. | ||
moritz: one can install from source on Debian, right? | |||
moritz | rindolf: do you mean source packages? | 17:47 | |
rindolf: or plain make && make install? | |||
rindolf | moritz: no I mean, using svn co ; perl Makefile.PL ; make ; etc. | ||
moritz | rindolf: yes, but that's ugly... | 17:48 | |
rindolf: partly it's ugly becaues 'make install' as root still compiles stuff... | |||
rindolf: which leads to a poisoned source tree | |||
I'm currently trying to build .debs that don't include support for parrot... | 17:49 | ||
since I use testing and libparrot-dev is not in testing due to RC-Bugs :( | |||
rindolf | moritz: what RC-bugs? | 17:50 | |
And what are RC-bugs? | |||
moritz | rindolf: "Release Critical" | ||
rindolf | moritz: I see. | ||
moritz | rindolf: bugs.debian.org/cgi-bin/pkgreport.c...t=unstable <-- especiall a >190 days old "can't build" bug ;) | 17:51 | |
lambdabot | Title: Debian Bug report logs: package parrot in unstable (versions 0.4.1-1, 0.4.4-1, 0 ..., tinyurl.com/yvg2uo | ||
17:57
BooK joined
17:58
xinming_ joined
18:11
ruoso joined
18:37
[M]erk joined
18:38
bonesss joined
18:40
diakopter joined
|
|||
svnbot6 | r15280 | lwall++ | some notes on linkage | 18:40 | |
18:59
nekokak_ joined
19:05
BooK_ joined
19:16
kisu joined
19:18
awwaiid joined
19:20
CardinalNumber joined
19:26
nipra joined
19:28
gaal joined
19:38
dduncan joined,
Belaf_ joined
19:39
CardinalNumber is now known as ProperNoun,
jisom joined
19:41
BooK joined
19:50
upd_ joined
19:51
upd_ is now known as upd^
19:53
BooK__ joined
20:04
kisu left
20:06
sunnavy joined,
ludan joined
20:10
amnesiac joined
20:26
BooK joined
20:27
prism joined
20:34
Aankhen`` joined,
elmex joined
20:36
BooK_ joined
20:52
weinig|away is now known as weinig
20:53
czth__ joined
20:56
BooK joined
20:58
Victor_ joined
|
|||
Victor_ | hello | 20:58 | |
www.fourmigration.com/link.php?pid=15&cont=5 | |||
20:59
Victor_ left
21:02
gaal joined
21:05
BooK_ joined
21:14
BooK__ joined
21:22
Alchemy joined
21:23
weinig is now known as weinig|bbl
|
|||
moritz stares at CGI.pm's smoke results... | 21:24 | ||
the failures in params.t all originate from the fact that CGI.pm does not preserve the order of the params... | 21:25 | ||
but is that order really important? does it _have_ to be preserved? | |||
21:25
prism joined
|
|||
dduncan | HTTP GET and POST parameter order is not significant | 21:26 | |
since all fields are identified by their name | 21:27 | ||
moritz | ok | ||
so the tests basically produces false-positives? | |||
dduncan | that said, there is a fuzzy area where sometimes groups of form elements are all given the same name, and some people consider the order of returned results to be significant | 21:28 | |
PerlJam | dduncan: foo=a&foo=b What is the value of param('foo')? I think order does matter. | ||
dduncan | the value of foo is a junction of a and b | 21:29 | |
moritz | PerlJam: in that case CGI.pm stores a list associated with 'foo' | ||
dduncan | or a set containing a and b | ||
moritz | which is, IMHO, the correct way to do it | ||
dduncan | as far as I'm concerned, if multiple fields have the same name, they denote a set | ||
where order is significant, the fields should have different names, or any significance can be attributed to sorting the values on the values, but then we don't need to preserve order info anyway | 21:30 | ||
personally, I think some aspects of the CGI.pm interface are flawed | 21:31 | ||
21:31
diakopter left
|
|||
moritz | dduncan: which aspects? | 21:31 | |
dduncan | for example, it discards GET parameters in an HTTP POST request | ||
moritz | shouldn't they be accessible via url_param? | 21:32 | |
dduncan | often in practice it is useful to transmit parameters using both places at the same time, but in order to do so with CGI.pm, I have to redo some of CGI.pm's work | ||
huh? | |||
Khisanth | PerlJam: I don't think anyone is going to be foolish enough to rely on the order :) | ||
dduncan | looking ... | ||
moritz | dduncan: at least in P6 it did... | 21:33 | |
dduncan | I'm judging CGI.pm on its Perl 5 incarnation | ||
PerlJam | Khisanth: clearly you must live on some other planet than the one I'm on. Mine is *full* of foolish people. | ||
dduncan | which AFAIK is being emulated as close as possible by the Perl 6 one, because its only reason to exist in Perl 6 is to help people migrate Perl 5 code | ||
of course, if the P6 one can be improved without losing significant backwards compatibility, I'm all for that | 21:34 | ||
moritz | so should we implement url_param as well? | 21:35 | |
dduncan | in general, I prefer what many other tools do which is to treat GET and POST params as 2 distinct namespaces, which they are, and have separate functions to fetch either, rather than a combined function for both | ||
21:35
BooK joined
|
|||
dduncan | GET and POST are no more ideally combinable than either is for COOKIE or PATH_INFO etc | 21:35 | |
21:35
macroron joined
|
|||
dduncan | s/for/with/ | 21:36 | |
moritz | so offer get_param and post_param, and param() and url_param() for backwards compatiblity? | ||
dduncan | in fact, one should be able to have a GET and POST var with the same key, and have them be distinct | ||
sure | |||
PerlJam | dduncan: separating GET and POST is good, but so is having a sane combiner | ||
dduncan | as long as we fundamentally consider them distinct, and that the combiner is conceptually a convenience wrapper | 21:37 | |
PerlJam | precisely | ||
moritz | PerlJam: the current approach in perl5's CGI is to look if POST-data is available, if yes, use that, if no, use GET | ||
dduncan | CGI.pm in Perl 5 fundamentally considers them combined, or more specifically, ignore GET if we're a POST query | 21:38 | |
you can see it clearly in he code | |||
personally, I'd like this to be fixed in the Perl 5 version | 21:39 | ||
ironically, I haven't yet talked to Lincoln Stein about this, so perhaps I should | |||
moritz | well, do that before I try to fix P6's CGI | 21:40 | |
it would be a bad idea to fix it in an incompatible way ;) | |||
dduncan | fyi, the internals can be fixed without changing the api | 21:41 | |
moritz | maybe, but it's easier to fix if you know what the API's going to be | ||
dduncan | that's one big reason why we have encapsulation in the first place | ||
moritz | or at least then you can do it all in one rush | 21:42 | |
PerlJam | I think it would be just fine to fix p6's CGI.pm in a way that's incompatible with p5's CGI.pm | 21:46 | |
moritz | why should we do that? | 21:48 | |
dduncan | so would I, actually | ||
as long as its mostly the same, so migration is easy | |||
PerlJam | moritz: to fix the original CGI.pm's mistakes | ||
dduncan | users can adapt to the fixes the same way they adapt to Perl 6's fixes of Perl 5 | 21:49 | |
if the design is similar enough, it would still be a thematic p5CGI descendent | |||
moritz | allright | 21:50 | |
dduncan | eg, the API can be 90% the same while being 300% better | ||
also, despite what I said, I'm not sure it is practical to try and improve the Perl 5 version now ... what I suggested is just 1 of many P5CGI.pm issues that I have to work around ... almost to the point that I don't use CGI.pm at all | 21:51 | ||
or when I do use it, it is wrapped in a different class | |||
so I won't be writing LS today | 21:52 | ||
PerlJam | dduncan: you sound like me (but for different reasons) | ||
moritz | why don't you like it? | ||
I mean it's not pretty, but it's not that bad either... | |||
dduncan | the API of CGI.pm is too different from the conceptual processes that it wraps, and I want to work more in the underlying terms | 21:53 | |
it loses information, as I previously mentioned | 21:54 | ||
its API is rather kitchen-sink in design | 21:55 | ||
or should I say, inconsistent and hard to understand in places just looking at it | 21:56 | ||
but I understand a lot of that is due to legacy issues, so I can't fault it that badly | |||
Juerd | If you haven't already, please read my Perl 6 CGI-related posts in perl6-users | ||
dduncan | if you mean last year, I participated in that discussion | ||
dmq | the funny thing with CGI is that everybody thinks it sucks, yet it hasnt really been replaced by anything so drammatically better that people stop recommending CGI. | ||
dduncan | people recommend CGI because it is bundled with Perl | 21:57 | |
and there is legacy code examples to look at | |||
dmq | but if there was something that the community overwhelmingly thought was better it would end up being bundled as well. | ||
Juerd | groups.google.com/group/perl.perl6....ddfadad19b | ||
lambdabot | Title: perl.perl6.users | Google Groups, tinyurl.com/2yefua | ||
PerlJam | dmq: I don't use CGI.pm because it sucks. I use my own home-grown thingy. The problem is, I suspect, that all of the people who think CGI.pm sucks either do as I do or just suck it up and use CGI.pm. | ||
Juerd | groups.google.com/group/perl.perl6....513fb847ff | ||
lambdabot | Title: perl.perl6.users | Google Groups, tinyurl.com/ypjn4x | ||
dmq | my point exactly PerlJam. :-) | ||
btw, it does suck. :-) | 21:58 | ||
Juerd | Those posts outline my thoughts on the matter | ||
21:58
upd^ is now known as upd
|
|||
dmq | those are long. ill have to read them when my brain has some power. | 21:59 | |
dduncan | CGI.pm's main advantage is that it is a low barrier for entry to people that want to do a quick form ... kind of like PHP's advantage actually ... but it falls down when scaling up in complexity ... or it falls down if you want expressivity | ||
21:59
rashakil joined
|
|||
Juerd | dduncan: Yes, but there's no reason that such a low barrier could not be made without making the same mistakes. | 21:59 | |
dmq | or it falls down because when you read the code you want to puke. :-) | ||
dduncan | indeed | ||
Juerd | I think the interface should be made more perlish, and more modular. | 22:00 | |
Modular also involving tearing apart unrelated functionality. | |||
PerlJam | Juerd: indeed! | ||
Juerd | Perlish involving, among other things, using Perl data types instead of methods, where it can be made to make sense. | ||
dduncan | so I'm all for making a better replacement for CGI.pm replacement in Perl 6 that is targeted at the same user base, which is low barrier of entry for doing simple things, but at the same time lacks all the bad stuff | 22:01 | |
Juerd | This requires, for example, ordered hashes, and Items that are both String and Array. But in Perl 6, all of this *can be done*! | ||
Though we don't know how yet :( | |||
PerlJam | dduncan: people can still use perl5's CGI.pm in perl6 if they like the old way | ||
dduncan | yes | ||
Juerd | This is what I miss in the current Perl 6 implementation (Pugs). | 22:02 | |
PerlJam: Exactly | |||
dduncan | fyi, my first significant CPAN modules, in 2001, were created partially as a replacement for CGI.pm | ||
but then, I recall, that was a popular thing to do | |||
Juerd would love to write (parts of, or all of) the new CGI.pm replacement, but the infrastructure isn't ready. | |||
PerlJam | Juerd: that hasn't stopped Larry from writing perl 6 in perl 6 :-) | 22:03 | |
Juerd | In fact, I'm afraid that once Perl 6 is implemented enough to do this stuff, it's already too late because someone will have implemented some more limited and less designed toolkit, which will already be the de facto standard. | ||
22:03
BooK_ joined
|
|||
Juerd | PerlJam: I don't know how to write some of the things. | 22:03 | |
PerlJam: Mostly the data types. Those are the basis of my thoughts. | |||
dduncan | well, you say infrastructure isn't there, but you could still write the Perl 6 version the proper way even lacking the infrastructure, then let the infrastructure fill out behind it | 22:04 | |
Juerd | PerlJam: $GET<foo> should be both 'bar' and ['foo', 'bar'] given a QUERY_STRING of foo=foo&foo=bar | ||
dduncan: Infrastructure includes syntax. | |||
dduncan: How do you create an ordered hash? Your own array? | 22:05 | ||
dduncan | why do you need an ordered hash? | ||
Juerd | dduncan: Because in CGI parameters, order *does* matter. | ||
dduncan | why? | ||
Juerd | dduncan: Two form elements can have the same name. | ||
dduncan: They then commonly form an array in the implementation. | |||
dduncan | and why does order matter, vs the 2 elements forming a 2 element set? | 22:06 | |
so they form a set|junction in implementation | |||
Juerd | dduncan: This is just one of the two reasons. | ||
dduncan: I was still typing, and will now start over. Please be patient :) | |||
dduncan | ... | ||
more importantly is whether the HTTP standard says that order is significant, I think | 22:07 | ||
Juerd | dduncan: Form elements must be submitted in the order they were in the HTML document, and that makes a lot of tasks very simple without resolving to code duplication. For example, a mail form. | ||
The HTTP standard explicitly says that order is significant. | |||
dduncan | well, okay then | ||
Juerd | Furthermore, the order of *headers* is *also* significant. | ||
Consider the mail form example. | |||
For the Dutch Perl Workshop, we use a (too) simple CGI script that sends the form as a YAML document, by email. | 22:08 | ||
It is then handled by others for several purposes. | |||
dduncan | but in my experience, a hash of arrays suffices to preserve and recreate an ordered query string | ||
one hash key per unique query key, and multiple values in the array in the order they were in the query | |||
Juerd | But because hashes are unordered, these messages suck for human beings. | ||
And coding around this requires a lot more effort. | |||
dduncan | doesn't anything which wants the data just extract the expected values by name anyway? | 22:09 | |
Juerd | dduncan: It's not about sufficiency! | ||
Heck, Perl 5 suffices. | |||
But if we're creating new tools, please let's work towards making *better* tools than we had before. | |||
dduncan | well, replace sufficient with ideal in my comment | ||
Juerd | I'm also not saying that all hashes should be ordered. I'm just saying that for a Perlish interface to HTTP and CGI stuff, you need them. | 22:10 | |
Otherwise you're stuck with OO interfaces. Which are nice, but cumbersome. | |||
I don't *intuitively*, as a Perl programmer, know how to add a new param if the interface for getting one is $foo->param('bar') | |||
Could be anything. | |||
dduncan | one generic tool by which to implement an ordered hash would be a ternary relation | 22:11 | |
the 3 attributes being index, key, and value | 22:12 | ||
Juerd | I want to be able to do "push $get<bar>, $string". This should work regardless of the number of "bar" elements in the query: 0, 1 or 2. | ||
dduncan | if you read values ordered by index, you interpret it as ordered | ||
to add one to the end, you add a tuple with an index value 1 higher than the highest one in there | |||
PerlJam | dduncan: who does the bookkeeping there? | 22:13 | |
Juerd | BTW, please refer to my post " Web development II: Code", which shows some (pseudo) code | ||
dduncan | what do you mean? | ||
Juerd | Ideally, all you need is: | ||
class OrderedHash { | |||
is Hash; | |||
dduncan | I mean, PerlJam, what do you mean? | ||
Juerd | make that: does Hash; | ||
does Array; | |||
# override some methods here | 22:14 | ||
} | |||
dduncan | sure | ||
22:14
ekelund joined
|
|||
dduncan | that would be useful | 22:14 | |
Juerd | The actual implementation is less important to me. I'm sure all pieces will fall into place automatically. | ||
Also important is the Str/Array hybrid. | 22:15 | ||
In fact, I'd say it's more important even. | |||
PerlJam | dduncan: you were talking implementation detail and I was thinking in terms of interface. Ignore me. | ||
dduncan | fyi, a relation is conceptually like a hash, but that n values are related rather than 2 values, and you can have multiple keys | ||
Juerd | And then, there's the combination of both. | ||
Does a "push" on the Array/Hash hybrid, also push onto the array that is the value? | |||
22:16
weinig|bbl is now known as weinig
|
|||
Juerd | i.e. can "push %orderedhash, bar => 'baz';" push onto $orderedhash<bar>? | 22:16 | |
(iff $orderedhash<bar> does Array) | |||
22:18
bonesss joined
|
|||
dduncan | Juerd, I like your " Web development II: Code" | 22:19 | |
Juerd | dduncan: Thanks | 22:20 | |
moritz | to me it sounds like a bit too much magic ;) | ||
Juerd | moritz: No magic at all... | 22:21 | |
To get this in Perl 5, you'd need lots of magic. | |||
dduncan | I still think you can prototype it in Perl 6, just substituting some prerequisites for others until the ones you want are present, then switch back ... but either way, having something out there, will give you a better chance of being the defacto standard instead of someone else | ||
Juerd | But in Perl 6, I think we can make it happen and intuitive, without relying on magic, or on awkward "looks like Perl, but doesn't behave as expected" interfaces. | ||
dduncan | I'm making a push along those lines myself, but for DBMSs | ||
Juerd | dduncan: I've tried, and threw it all away. It requires replication of all methods. | 22:22 | |
dduncan: And once you're doing both array and hash, or both array and str, that's a lot of methods. | |||
I have little time. | |||
PerlJam | Juerd: sounds just like a Capture to me :-) | ||
nothingmuch | moose | ||
dduncan | fair enough | ||
Juerd | I'm convinced that the entire toolkit can be written in a few days, once Perl 6 is ready. | 22:23 | |
But I'm afraid that when Perl 6 is ready, it will already be too late, exactly *because* people will have been too impatient to wait. | |||
Juerd rereads "will have been" and wonders if English even works like that :) | 22:24 | ||
moritz | Juerd: I think it does, but I'm not a native speaker as well | ||
dduncan | why don't you create an ext/ in Pugs now that is written the way you think it should be done, even if it doesn't compile yet | ||
Larry is writing the Perl 6 parser in Perl 6 now, though some prereqs don't work yet, afaik | 22:25 | ||
Juerd | dduncan: Because I lack the creativity required to think of syntxa. | ||
dduncan | then it would still only take the few days | ||
Juerd | I've written this p6u post outlining a part of what I would want | ||
I'm sure that it can be improved a lot. | 22:26 | ||
And don't want to write everything now, and risk two horrible things: | |||
1. that it will be used without the required improvement, because it's feature complete | |||
1. that everything needs to be rewritten. As said, I have too little time. | |||
s/1/2/ | |||
Some experimentation will be needed. For that, we need at least syntax. | 22:27 | ||
dduncan | alternately, maybe you are worried too much that someone else will become a fefacto standard | ||
Juerd | I am worried about that, yes. | ||
PerlJam | Hmm. | ||
Juerd | Well, I am worried that someone will not think it through enough. | ||
dduncan | considering your situation, maybe you should just wait until the syntax is in place, then write your thing in a few days | ||
Juerd | So far, EVERY SINGLE discussion about getting rid of CGI.pm has resulted in many people coming up with ideas that IMO are suboptimal. | 22:28 | |
dduncan: But then important namespace will be taken already. | |||
I don't believe in MyProject::HTTP::Message. | |||
dduncan | then write a placeholder empty module in that namespace | ||
PerlJam | Juerd: this is perl6 ... CGI-1.2-Juerd is just fine. | ||
22:28
larsen_ joined
|
|||
Juerd | PerlJam: That's not the only issue. One issue is compatibility and de-facto objects. | 22:28 | |
PerlJam: I write things that can take standard LWP objects. | 22:29 | ||
PerlJam: I can do this because LWP is the standard. | |||
22:29
Psyche^ joined
|
|||
dmq | (afaik "will have been" is ok) | 22:29 | |
Juerd | PerlJam: But CGI.pm doesn't use the same objects, even though many would make a lot of sense. | ||
dduncan | add an ext/ entry now which declares all the namespaces you want to use, but doesn't fill them out, and make its test suite empty | ||
if you change your mind later on the names, then update the ext/ accordingly | |||
Juerd | dduncan: Oh, but the test suite could be filled. | ||
dduncan | whatever works | 22:30 | |
Juerd | I have a really clear vision of the API. All I need is (lots and lots) of tuits. | ||
dduncan | but simply declaring your namespace takes fairly little tuits | ||
I'm sure you could do it in just an hour | |||
Juerd | dduncan: Sounds like domain squatting. I hate that. | ||
PerlJam | actually, that's the way to do it. Write the tests assuming things work the way you think they should. Modules will grow around the interface implied (specced?) by the tests | ||
(maybe) | |||
dduncan | well, if you end up not using the name later, you can remove the ext/ entry | 22:31 | |
see, in the early days of Perl 6 when all Perl 6 code is in Pugs, its easy to be dynamic as to what names are in use or not | |||
moritz | dduncan: and charge 80$ for the next one to use it *duck* | ||
dduncan | by the time Perl 6 code breaks out of the Pugs distro, things should be in place for your solution to be opeating | 22:32 | |
operating | |||
this is not really the same as domain squatting at all | |||
and besides, I think you are well known enough, Juerd, that people would trust you if you reserve a name | |||
Juerd | PerlJam: Iff I'll make it to the hackathon, I'll spend some time there. | ||
22:33
pdcawley joined
|
|||
dduncan | so go and make your claim for the name! | 22:33 | |
and fyi, you can consolidate your existing comments and example code to date as a documentation file which you place under that ext/ entry in Pugs | 22:34 | ||
Juerd | $foo<bar> = 42; push $foo<bar>, 15; is($foo<bar>[0], 42); is($foo<bar>[1], 15); is($foo<bar>.join(":"), "42:15"); is($foo<bar>, 42); | ||
dduncan | rather than referring people to emails | ||
Juerd | dduncan: I know, I know. Tuits. | ||
dduncan | if you want, I'll do what I just said on your behalf | 22:35 | |
then you don't have to do anything now | |||
Juerd | dduncan: The (imo) important parts of the messages were warnocked. I would have liked some more discussion. | ||
moritz | from which directory are the tests called when `make smoke` is run? | ||
Juerd | dduncan: Please, that would be nice. | ||
dduncan | looking ... | ||
Juerd | One of the things that I don't know yet, how to handle, is the numeric value of things. | 22:36 | |
Here, it may *look* logical that $foo<bar> == 42, but why wouldn't it == 2, for containing two elements? | 22:37 | ||
That probably means there's something fundamentally wrong with my ideas, but I don't yet know how to fix it. | |||
moritz | Juerd: shouldn't it be [42, 15]? | 22:38 | |
Juerd | So perhaps it's just an Array that returns its last element when used in scalar context. | ||
moritz: Both! | |||
22:39
JimmyZ joined
|
|||
moritz | Juerd: why the heck should it return it's _last_ element? | 22:39 | |
dduncan | Juerd, mind this channel ... I may have a few questions for you to guide my progress, which is starting immediately ... | ||
Juerd | dduncan: I'm sick and need to sleep soon. | ||
moritz: To be compatible with current scripts. | |||
dduncan | oh | 22:40 | |
I'll be quick then, maybe just one question | |||
Juerd | moritz: Many existing sites depend on addition to the query string overriding previous values. | ||
dduncan | your example code seemed to fall into 2 main namespaces, HTTP and Web | ||
Juerd | moritz: When re-writing implementation, you don't also want to re-write all URLs, because there may be external links to them. | ||
dduncan | would you say that HTTP is standalone, and Web is an optional extension? | ||
Juerd | dduncan: Both stand alone, but Web depends on HTTP. | ||
dduncan | I'm inclined to make 2 ext/ entries from what I saw, one for each, if so | 22:41 | |
Juerd | From my perspective, "HTTP" is just the "current protocol" that we use for the web. | ||
But maybe one day someone makes xhttp, an XML 2.0 compliant protocol, that is meant to replace HTTP. | 22:42 | ||
moritz | Juerd: I don't get your point... why should a site use /?foo=bar;foo=baz instead of /?foo=baz ? in both cases external links would point to /?foo=bar... | ||
Juerd: which is different from either... | |||
Juerd | moritz: "$currenturl&foo=baz" | ||
dduncan | well, I'll just do what I think will work, and people can change it later | ||
moritz | Juerd: or did I get something wrong? | ||
dduncan | and that is making HTTP/ and Web/ | ||
Juerd | dduncan: Yes, that's good. | ||
dduncan | so get some sleep, then | 22:43 | |
oh, in case it wasn't obvious, as I'm doing this as your proxy, I will specifically say you are the author of these ext/ distros | |||
Juerd | Need to finish upgrading a server; I expect that to take 5 to 10 minutes | 22:44 | |
dduncan | in the associated metadata | ||
Juerd | (Memo: never again do such stuff on production servers if you can't think clearly) | ||
Thanks for proxying me | |||
22:44
Psyche^ is now known as Patterner
22:50
justatheory joined,
weinig is now known as weinig|bbl
|
|||
Juerd | Good night, all | 22:52 | |
moritz | Juerd: good night | ||
in which variable is the directory seperator ('/' for unix, '\' for win) stored? | 22:53 | ||
dmq | in what? | 22:54 | |
perl (and actually the win32 internal routines) normally handles both. | 22:55 | ||
moritz | perl6 | ||
so should I just use /? | |||
dmq | thats the tendency in the perl5 world. | ||
moritz | dmq: ok, thanks | 22:57 | |
23:03
offby1 joined
|
|||
offby1 | is there something like FindBin for pugs? | 23:04 | |
23:06
BooK joined
|
|||
moritz | offby1: I'm essentially searching for the same thing... | 23:06 | |
offby1 | I see svn.pugscode.org/pugs/ext/FindBin/lib/FindBin.pm but I don't know how to use it. | 23:07 | |
"use FindBin" just yields an error. | |||
moritz | offby1: the testcases for Config::Tiny mostly fail because they are executed in the wrong directory | ||
offby1 facepalsm | |||
offby1 facepalms | |||
moritz | offby1: probably @*INC is wrong (or not filled sufficiently) | 23:08 | |
offby1 | sure | ||
23:15
devogon joined
|
|||
moritz | but currently I'm lost as well | 23:18 | |
well, time for bed, good night * ;) | 23:19 | ||
dduncan | Juerd, you have multiple email addresses listed for yourself, but I will be using [email@hidden.address] in your metadata, following the example of at least 1 of your existing CPAN modules, unless you want a different one used | 23:22 | |
... or you're gone ... so just take that as an fyi and change it later if you want | 23:23 | ||
23:45
BooK_ joined
23:47
buetow joined
23:53
BooK__ joined
|