Pugs t-shirts www.cafepress.com/pugscode | Pugs 6.2.9 released | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net Set by stevan on 15 August 2005. |
|||
00:35
Samhain is now known as efilnikufesin
01:12
ben is now known as venk
01:33
mugwump is now known as TPmG|mgwmp
01:54
buu is now known as buubot
01:55
buubot is now known as buu
|
|||
svnbot6 | r7294 | Darren_Duncan++ | /modules/Rosetta-Incubator : updated all 15 lib/*.pm files so that the file contents match the external file names rather than being generic templates; replaced all occurances of 'Foo' and '0.0.0' with correct class names and versions; filled in the correct NAME and VERSION and LICENCE AND COPYRIGHT documentation for each module | 02:39 | |
02:42
brentdax__ is now known as brentdax
04:05
brentdax__ is now known as brentdax
|
|||
geoffb | putter or fglock, what % of test suite does PIL-Run pass? | 06:08 | |
svnbot6 | r7295 | Darren_Duncan++ | /modules/Rosetta-Incubator : added new file /MANIFEST.SKIP | 06:22 | |
obra | seen autrijus | 06:25 | |
jabbot | obra: autrijus was seen 7 hours 20 minutes 31 seconds ago | ||
gaal | geoffb: ping | 06:41 | |
geoffb | gaal, pong | 06:42 | |
gaal | heya :) | ||
see m19s28.vlinux.de/cgi-bin/pugs-smokeserv.pl | |||
around 55% according to the latest smokes there. | |||
geoffb | gaal, yeah, found smoke.pugscode.org/ | ||
gaal | oh wait, those are old, it seems | ||
geoffb | autrijus++ # new easy to remember URL | 06:43 | |
gaal | whee | ||
geoffb | putter, fglock, nevermind my last question, but please check STATUS (which I'm about to commit fixes for) to make sure PIL-Run status is reasonable | ||
OK, committed. | 06:45 | ||
Autrijus: I think I've mostly done the STATUS updates, but I might have dates or details wrong. Please give it a looksee. | 06:46 | ||
svnbot6 | r7296 | geoffb++ | Extensive updates to STATUS | ||
geoffb plays with a one-liner to determine the commit rankings . . . | 07:02 | ||
I'm impressed; 50% of 113 committers can claim 9+ commits; 25% can claim 24+; 10% can claim 150+. Pretty well spread out. | 07:04 | ||
And even autrijus and iblech combined do not add up to 50%. | |||
Mmmm, well-rounded committing . . . . | 07:05 | ||
Make that 112 committers -- an oversimple regex had created a committer with a whitespace name with 14 commits. :-) | 07:15 | ||
coral | heh | 07:16 | |
geoffb | OK, time to attempt sleep | 07:19 | |
& # sweet, sweet slumber | |||
gaal | the open :w bug is very weird. I can't reproduce it; named arguments to Prelude's open seem not to be bound. | 07:33 | |
luqui | could have something to do with "is primitive"? | 07:34 | |
gaal | hmm, let's see. | ||
wow, good guess | 07:35 | ||
it indeed looks like it breaks named args. | |||
luqui++ | |||
luqui has had problems with is primitive before | 07:37 | ||
gaal | doExtract doesn't handle SubPrim, I wonder if that's the reason. | 07:40 | |
oops, it does | |||
in the _ clause | |||
do you see any effective difference between doExtract SubBlock and doExtract _ | 07:42 | ||
? | |||
Parser:309 | |||
doExtract _ formal body = (body, names', params) | 07:43 | ||
luqui looks | |||
brentdax | Hmm, I suppose I should implement a block cipher next. | ||
gaal | is the repetition of 'body' bad? | ||
brentdax: the masses want fortuna! ;-) | |||
(there's no reference implementation though) | 07:44 | ||
brentdax | gaal: Maybe once I finish with the ciphers. | ||
gaal | yeah, that order does make sense :) | ||
brentdax | (And fortunately, although there's no reference implementation, I happen to have just acquired a copy of /Practical Cryptography/, which defines Fortuna.) | 07:45 | |
luqui | gaal, yeah, I can see a difference | 07:46 | |
but I don't know quite what it means | |||
what does extract do? | |||
gaal | it's eventually used to populate env with subParams etc. | 07:47 | |
ruleSubDeclaration and retVerbatimBlock | 07:48 | ||
er, not env | |||
the actual sub | |||
brentdax: there's a patch to linux that implements Fortuna for /dev/random, but it has a few kernelisms. | 07:49 | ||
brentdax | I know. | 07:50 | |
(We're also lacking hashing algorithms in pure Perl 6...) | |||
gaal | Cipher::Digest? | ||
brentdax | Nah, digests aren't ciphers. I think they'd be under Digest::. (I'm thinking about moving everything to be under Crypt::, though--Crypt::Cipher, Crypt::Digest, Crypt::Random...) | 07:51 | |
(Although digests are used for more than cryptography.) | 07:52 | ||
gaal | Oh, I tought your Cipher was to be a general crypto API. | 07:53 | |
brentdax | It's to be a general API for encryption algorithms. Everything under Cipher:: should derive from or compose into the Cipher class; it doesn't make sense for hash algorithms and such to do so. | 07:54 | |
gaal | linux has the transform layer above that... what do they use it for? | 07:55 | |
brentdax | Dunno, I haven't looked at Linux's crypto in depth. (I think Wikipedia linked to the Fortuna patch, though.) | 07:57 | |
Oh...can you `does` a class, or do you have to `is` it? | 07:58 | ||
gaal | you do a role, no? | 07:59 | |
luqui | under theories you `does` a class | ||
gaal | happily, luke's here to answer that! :) | ||
luqui | but currently you can only `is` classes | ||
brentdax | Ah, okay. | 08:00 | |
Oooh, TEA looks easy to implement. | 08:01 | ||
gaal | 32 bit block, right? | 08:07 | |
luqui just learned RSA in school :-) | |||
brentdax | 64-bit block, 128-bit key. The "T" is for "Tiny", and it deserves the name. | 08:14 | |
en.wikipedia.org/wiki/Tiny_Encryption_Algorithm | |||
luqui | ooh, designed by David Wheeler | 08:17 | |
cool | |||
brentdax | ?eval my @ary = 0..255; say @ary.splice(0, 16, []).perl; @ary.elems | 08:35 | |
evalbot_7296 | 15 241 | ||
brentdax | Hmm... $situations_where_i_would_like_autochaining_methods++; | 08:36 | |
luqui | ?eval my @a = 0..255; say @ary but { .splice(0, 16); }.elems | 08:37 | |
evalbot_7296 | Error: Undeclared variable: "@ary" | ||
luqui | ?eval my @a = 0..255; say @a but { .splice(0, 16); }.elems | ||
evalbot_7296 | Error: No compatible subroutine found: "&elems" | ||
luqui | ?eval my @a = 0..255; say (@a but { .splice(0, 16); }).elems | ||
evalbot_7296 | Error: No compatible subroutine found: "&elems" | ||
luqui | ?eval my @a = 0..255; say @a but { .splice(0, 16) } | ||
evalbot_7296 | 16171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319 | ||
luqui | almost there | ||
?eval my @a = 0..255; say elems(@a but { .splice(0, 16) }) | 08:38 | ||
evalbot_7296 | Error: No compatible subroutine found: "&elems" | ||
luqui | ?eval my @a = 0..255; say +(@a but { .splice(0, 16) }) | ||
evalbot_7296 | 240 bool::true | ||
luqui | that's the ticket | ||
brentdax | (In this case, I have to have block ciphers implement _zeroize, because Cipher::Block has state to zeroize too.) | ||
luqui | zeroize? | 08:39 | |
brentdax | "Oh shit, the secret police are breaking in, delete everything now!" | ||
You overwrite all the keys and intermediate data with zeroes--hence, zeroize. | |||
(It's also a good behavior for a destructor.) | 08:40 | ||
luqui | ahh | ||
like shred, but in memory | |||
brentdax | Yup. | ||
You can see why I'm asking for `is sensitive` on p6l. | 08:41 | ||
gaal | won't randomize be more secure, assuming there's time? | ||
"throw the deck in the air" in solitaire :) | 08:42 | ||
luqui wonders how 'is sensitive' would be implemented given the high level of abstraction | |||
brentdax | Heh. Schneier actually recommends against throwing the deck in the air--apparently a lot of the order is retained when you do that. He says you should just calmly shuffle the deck. | 08:43 | |
luqui | it might be tough to keep from accidentally making a cow copy somewhere or something | ||
brentdax | You might have to disable a lot of magic like that, but if you're applying `is sensitive` you're already saying you care more about secrecy than speed. | 08:44 | |
gaal | i thought it takes seven shuffles to "really" randomize? | 08:45 | |
svnbot6 | r7297 | gaal++ | pugsbugs for `is primitive` and named params | ||
gaal | (this one's a showstopper since it breaks open) | 08:46 | |
brentdax | gaal: Yes, but you have to get by with what you can. | 08:47 | |
luqui | brentdax, yeah, but that kind of magic happens at the VM level | 08:49 | |
and, for instance, the JS backend would not be able to do anything about it | |||
brentdax | True. Hmm. | ||
luqui | what would it take to write a parrot-specific module to do that? | ||
i.e. is it modulable at all? | |||
brentdax | I'm not sure you can hook into stings at low enough levels. (e.g. you'd have to know when a string grows so you could zero over the old buffer.) Meh. | 08:53 | |
s/stings/strings/ | 08:54 | ||
Hmm...is it a Good Thing or a Bad Thing when you know that adding documentation to a module will probably triple its length? | 08:55 | ||
luqui likes that | 08:56 | ||
svnbot6 | r7298 | gaal++ | add test temp file to svn ignore list, these are sadly not removed automatically on Windows | 08:57 | |
brentdax | Okay, Cipher::Block and Cipher::TEA are written. Now to get some test vectors. | 08:58 | |
autrijus | gaal: fixing | 09:06 | |
...except your test passes for me here. weird | 09:07 | ||
gaal: the bug might be because I turned off magical pair handling for primitives. | 09:11 | ||
because otherwise | |||
~(x => 3) | |||
will not stringify | |||
gaal: but really, your test succeeds for me :-/ | 09:12 | ||
there need to be a trait that says "positionals only" it seems. | 09:14 | ||
autrijus ponders | |||
or just have ~() accept pairs. | |||
Pair.prefix:<~> | 09:15 | ||
wolverian | you mean prefix:<~> (Pair)? | ||
gaal | whoops, back | ||
autrijus | yeah | ||
gaal | i TODO'ed it, ja | ||
wolverian | good, I thought I had missed something :) | ||
autrijus | gaal: no, it unexpectedly passes. | ||
gaal | hmm | 09:16 | |
autrijus | try it? | ||
gaal | sec | ||
silly windows shell, ^C does break... | 09:17 | ||
autrijus | anyway, I attempted another kluge | ||
namely only real builtins accept all-positionals | |||
and user defined primitives still handles named | 09:18 | ||
it feels klugy, so better ideas welcome. | |||
gaal | ! | 09:21 | |
unexpected success here too. weird, because it did fail previously. | |||
does io.t pass for you? | |||
autrijus | I doubt so as open :w is shown to not work | 09:22 | |
gaal | t/builtins/io/io.t | ||
autrijus | I'm recompiling, a sec | ||
it fails as expected. | |||
luqui | autrijus, with that kludge, how do we get operator adverbs | ||
?eval say (1..10 :by(2)) | 09:23 | ||
evalbot_7298 | Error: cannot cast from VBool True to Pugs.AST.Internals.VCode (VCode) | ||
autrijus | luqui: we don't, so you better think of some way so we can safely demagicalize pairs | ||
oh wait, you already had. | |||
;) | |||
luqui | :-) | ||
autrijus | int(x => 1) | ||
is there some way in &int's prototype to saw we don't want named on the first positional field, short of falling back to *@_ ? | 09:24 | ||
and *@_ is bad since we want item context | |||
luqui | sub int((Item, Pair) $x) {...} | 09:25 | |
autrijus | ooh new syntax. | ||
what's the , ? | |||
luqui | I think Larry went with that as a synonym (in type position) for (+) | ||
autrijus | but how do I say, then, it demands Int context? | ||
luqui | hmm | ||
autrijus | sub int ((Item, Pair) $x is context(Int)) ? | 09:26 | |
luqui | that's getting pretty heavy | ||
autrijus | it's also not what most people can intuit. | ||
me included. | |||
luqui | I mean, you really want: sub int (Int $x) { $x } | ||
but a Pair is not an int, so it would never fit in there | |||
autrijus | sub int (Int =$x) | ||
luqui | ? | 09:27 | |
autrijus | sub int (Int $x is positional is coerced) | ||
or something like that. | |||
sub int (Any $x as Int) {} | |||
better? | |||
anyway, the prototype of ".." needs some thinking. | 09:29 | ||
I mean, signature. | |||
svnbot6 | r7299 | brentdax++ | Cipher API work-in-progress check-in: | 09:31 | |
r7299 | brentdax++ | * Cipher::Block | |||
r7299 | brentdax++ | * Cipher::TEA | |||
r7299 | brentdax++ | I haven't even tried compiling these, let alone making sure they work properly. I'm particularly concerned about TEA and byte-order issues... | |||
autrijus | gaal: io.t now still fails, albeit at a different place. please investigate | ||
brentdax | And with that, it's time for bed. | ||
luqui | sub infix:<..> (Int $left, Int $right, *%adverbs) {...} | ||
autrijus | luqui: not +$by ? | 09:32 | |
brentdax & | |||
luqui | that works too | ||
autrijus | luqui: and it's a multi for Int/Int for Str/Str ? | ||
luqui | oh, that, right | ||
autrijus | how does (1 .. '3') work? | ||
and how does (1 .. $pair) work? | |||
luqui | autrijus, 1..'3' is an error unless Int does Str | 09:33 | |
how is 1..$pair supposed to work? | |||
autrijus | which it does via coercion, no? | ||
say 1; # look works | |||
luqui | (oh, what is a pair in item context?) | ||
autrijus | luqui: exactly. | ||
luqui | so in that case, Int does Str | ||
gaal | autrijus: ack | ||
luqui | which is something I've been saying all along | 09:34 | |
autrijus | I know, but not part of canon | ||
that, and demagical pairs | |||
luqui | anyway, this comes back to the semantics of coersion | ||
autrijus | namely, &coerce:<as> | ||
luqui | which have definitely not been worked out | ||
autrijus | and how compiler inserts those forms. | 09:35 | |
*nod* | |||
luqui | to me, &coerce:<as> takes a thing on its left side and a *context* (not a type) on its right | ||
and then the compiler inserts coerce:<as> everywhere | 09:36 | ||
svnbot6 | r7300 | autrijus++ | * Repair open :w using a terribly kluge that tests the | ||
r7300 | autrijus++ | subroutine body for Primness, and if it's Prim, don't | |||
r7300 | autrijus++ | accept named arguments but use coercion instead. | |||
r7300 | autrijus++ | It's a horrible kluge -- we need something like that | |||
r7300 | autrijus++ | at language level! | |||
luqui | but there is special support for when coerce:<as> is a no-op | ||
that is, the compiler should know that | |||
autrijus | by context, you mean | ||
luqui | however we end up telling it... | 09:37 | |
autrijus | CxtClurpy Type | CxtItem Type | CxtVoid | ||
so it still carries a type | |||
luqui | yeah | ||
autrijus | then we have first-class contexts? ;) | ||
how lovely. | |||
luqui | however, coerce:<as> is a really funny thing | 09:38 | |
in order to make that play well with the typecheck | |||
er | |||
all its logic pretty much has to be in its signature(s) | |||
autrijus | aye. | 09:39 | |
luqui | i.e. multi coerce:<as> (@array, Item of Num $cxt --> Int) {...} # array becomes integer in numeric context | ||
omitting the --> clause is unacceptable | 09:40 | ||
autrijus | *nod* | ||
autrijus feels a distinct need of formalization / visiolization. | 09:41 | ||
svnbot6 | r7301 | gaal++ | readline should not have used guardIO, go back to tryIO undef | ||
gaal | when readline reaches EOF, it shouldn't raise an exception. but other read errors should probably fail loudly, no? | ||
luqui agrees | 09:42 | ||
luqui wonders if he's the one who should do it | |||
autrijus | gaal: yes, you may need to have a guardIOwith form or something | 09:43 | |
which would involve case-analyzing the ioError | |||
or | |||
guardIOexcept | |||
guardIOexcept :: IOError -> IO a -> Eval a | |||
or even | 09:44 | ||
gaal | [IOError] perhaps? | ||
autrijus | guardIOexcept :: (IOError -> Maybe a) -> IO a -> Eval a | ||
the idea is using predicates to maybe catch it | |||
uncaught ones are thrown again | |||
or using data driven way: | 09:45 | ||
guardIOexcept :: [(IOError, a)] -> IO a -> Eval a | |||
or even | |||
guardIOexcept :: [((IOError -> Bool), a)] -> IO a -> Eval a | |||
guardIOexcept [(isEOFError, undef)] $ do ... | 09:46 | ||
gaal | guardIOwithASieve | ||
autrijus | the isEOFError predicate is convenient here | ||
gaal | ah, yes, nice. | ||
autrijus | anyway, improvise. I need to nap a bit more :) | ||
gaal | enjoy | 09:47 | |
autrijus | luqui: I confirm your wondering :) | ||
luqui | oh, we already do have first-class context, do we not? | ||
?eval say want | |||
evalbot_7301 | Scalar (Any), LValue bool::true | ||
autrijus | luqui: we do, except how it is defined is undefine | 09:48 | |
d | |||
so I cheated with a Str. | |||
gaal | can someone on linux please svn up and tell me if io.t crashes for them near the end? | ||
autrijus | I wonder if we want tagged unions for that. or just a Context interface with Item/Slurpy classes. | ||
gaal | trying to figure out if this failure is win32 specific. | ||
luqui thinks it is probably just a union | |||
autrijus | luqui: is tagged unions canon yet? ;) | 09:49 | |
luqui | most definitely. no idea how they're spelled, but they're there | ||
autrijus | or is MMD visitors so strong that we don't need the counterpart in the expression problem setting? | ||
luqui | hmm? | ||
elaborate | 09:50 | ||
autrijus | luqui: with strong OO-MMD all functional visitors with tagged unions can be rewritten with roles | ||
hence there are people who argue we'd only need one or the other. | |||
Scala of course got both. | |||
gaal: fbsd | 09:51 | ||
# Looks like you planned 55 tests, but ran 52 | |||
*** tempfile.3702.956: openFile: resource busy (file is locked) | |||
at tmp-Prelude.pm line 310, column 18-61 | |||
luqui | Scala didn't get both, because scala forgot that case types are union types | ||
if you have Foo = Bar | Baz, there is no guarantee in Scala that there is not a Quux that is also a Foo | |||
autrijus | so they are open like OCaml unions | ||
which may or may not be a feature :) | 09:52 | ||
but yeah, it's different from ordinary algebraic variant types. | |||
gaal | autrijus: close doesn't :-( | ||
luqui | it looks like it until you think about contravariant typing | ||
autrijus | luqui: yup. | ||
but I really need to doze off. bbiab :) & | 09:53 | ||
luqui thinks he will write up a coersion proposal | |||
night | |||
09:56
brentdax__ is now known as brentdax
|
|||
joao_ | good $localtime | 10:03 | |
gaal | heya | 10:06 | |
10:07
joao_ is now known as joao
|
|||
gaal | $todo.add("make io fails appear to originate in calling code, not the prelude; or at least give a stack trace") | 10:13 | |
what's todo_fail been renamed to? | 10:22 | ||
fail .. :todo? | |||
(yes :) | 10:25 | ||
kgftr|konobi | autrijus don't suppose you happen to know of any 'stemmers' for chinese (ie: for search engines) [OT i know, but damn freenode doesn't allow prvmsg] | ||
svnbot6 | r7302 | gaal++ | introduce guardedIO, which is like boolIO but fails on errors. | 10:26 | |
r7302 | gaal++ | use in close and soon other ops. | |||
broquaint | win 5 | 10:28 | |
Dagnabbit. | |||
gaal | hrm? | 10:29 | |
luqui | kgftr|konobi, freenode doesn't allow prvmsg? | 10:30 | |
gaal | you need to be identified by nickserv. | ||
svnbot6 | r7303 | gaal++ | fix test (this involved making sure files are closed before opening | 10:32 | |
r7303 | gaal++ | them again; should this really be needed?) | |||
kgftr|konobi | last time i registered with freenode i got spammed with "please donate" etc, so never again | 10:35 | |
joao | registering gives you the possibility to identify yourself. that's the main reason, for me :-) And I don't remember to receive those messages | 10:36 | |
luqui | what? never happened to me | ||
broquaint | Oh no not spam! | ||
They have that on the internet now? | 10:37 | ||
10:37
joao is now known as jff,
jff is now known as joaoferreira
|
|||
gaal | kgftr|konobi: spammed with /msgs or by email? | 10:38 | |
joaoferreira | sorry guys: | ||
[11:37] -NickServ-Freenode is a service of Peer-Directed Projects Center, an | |||
[11:37] -NickServ-IRS 501(c)(3) (tax-exempt) charitable and educational organization. | |||
[11:37] -NickServ-For frequently-asked questions about the network, please see the | |||
[11:37] -NickServ-FAQ page (freenode.net/faq.shtml). | |||
this is the message | |||
where's the spam? :D | |||
10:38
joaoferreira is now known as joao
|
|||
kgftr|konobi | gaal: e-mail | 10:38 | |
joao | oh | ||
They don't require the email, do they? | 10:39 | ||
gaal | don't give them your email then :) | ||
joao | :) | ||
kgftr|konobi | they used to | ||
gaal | don't now. | 10:40 | |
kgftr|konobi | oh... works now... yay! | ||
joao | but I think you could provide the value: noemail | ||
(not sure, though) | |||
gaal | (opt-out)-- | ||
10:46
Lopo_ is now known as Lopo
|
|||
theorbtwo | kgftr|konobi, mind if I hit you up for 802.11 configuration advice? | 10:51 | |
gaal | advice the first: close telnet :) | 10:55 | |
theorbtwo | orafu, of course, if anybody else wants to help, speak now and I'll spam the channel with off-topic stuff. | 10:56 | |
Dammit, irssi completion is getting rather annoying. | 10:57 | ||
s/orafu/or/ | |||
luqui | ?eval sub f ($x) { say $x } f { 1 }.() | 11:00 | |
evalbot_7303 | 1 bool::true | ||
luqui | ?eval sub f (*@x) { say @x } f { 1 }.() | ||
evalbot_7303 | <SubBlock(<anon>)> Error: cannot cast from VBool True to Pugs.AST.Internals.VCode (VCode) | ||
luqui | if anything that seems backwards | ||
maybe it's a slurpy block thing | |||
joao | ?eval 42.shift() | ||
evalbot_7303 | 42 | ||
joao | what should be the error? | 11:01 | |
broquaint | ?eval ().shift | ||
evalbot_7303 | undef | ||
luqui | "shift: method not found"? | ||
joao | ok, the usual | ||
luqui | ?eval sub f (*@x, *&slurp) { say "args: @x[]; block: " . &slurp } f { 1 }.() | 11:02 | |
evalbot_7303 | Error: unexpected "." expecting operator, ":", ",", term postfix, postfix conditional, postfix loop, postfix iteration, ";" or "}" | ||
luqui | heh, perl5+perl6)/2 | ||
?eval sub f (*@x, *&slurp) { say "args: @x[]; block: " ~ &slurp } f { 1 }.() | |||
evalbot_7303 | Error: Slurpy array followed by slurpy scalar: MkParam {isInvocant = False, isOptional = False, isNamed = False, isLValue = True, isWritable = False, isLazy = False, paramName = "&slurp", paramContext = CxtSlurpy (mkType "Code"), paramDefault = Noop} | ||
luqui | no silly, that's a slurpy block! | ||
?eval sub f (*&slurp, *@x) { say "args: @x[]; block: " ~ &slurp } f { 1 }.() | 11:03 | ||
evalbot_7303 | args: ; block: <SubBlock(<anon>)> Error: cannot cast from VBool True to Pugs.AST.Internals.VCode (VCode) | ||
luqui | ?eval sub f (*@x, *&slurp) { say "args: @x[]; block: " . &slurp } f({ 1 }.()) | ||
evalbot_7303 | Error: unexpected "." expecting operator, ":", ",", term postfix, postfix conditional, postfix loop, postfix iteration, ";" or "}" | ||
luqui | ?eval sub f (*@x) { say @x } f({ 1 }.()) | ||
evalbot_7303 | 1 bool::true | ||
luqui | ?eval sub f (*@x) { say @x } f ({ 1 }.()) | ||
evalbot_7303 | 1 bool::true | ||
luqui | ?eval sub f (*@x) { say @x } say f {1}.() | ||
evalbot_7303 | <SubBlock(<anon>)> Error: cannot cast from VBool True to Pugs.AST.Internals.VCode (VCode) | ||
luqui | hm | ||
svnbot6 | r7304 | gaal++ | move some more Prims to guarded IO; guardIOexcept coming soon. | 11:21 | |
kgftr|konobi | theorbtwo: sure | 11:25 | |
theorbtwo | Ah, exelecent! | 11:38 | |
Sorry I didn't notice you earlier -- three machines and several windows on this one is not condusive to noticing everything that's going on... | |||
kgftr|konobi | =0P | 11:40 | |
theorbtwo | Bah, and my pcap is apparently in a borked half-upgraded state, need to reboot my router. | 11:41 | |
Can you join #foobarbaz to avoid spamming this channel, and so that Jess can possibly fill you in while it's rebooting? | 11:42 | ||
11:47
theorbtw1 is now known as theorbtwo
|
|||
nothingmuch | moose | 12:10 | |
gaal | elk! | 12:12 | |
svnbot6 | r7305 | gaal++ | guardIOexcept, used in readline (where else do we need it?) | 12:15 | |
nothingmuch wonders how much it will be to make the type inferrencer's nullary ops become parametrized | 12:16 | ||
and then making the unification code behave like theorys | |||
theories | |||
seen luqui | 12:17 | ||
jabbot | nothingmuch: luqui was seen 1 hours 13 minutes 33 seconds ago | ||
nothingmuch | luqui: ping | ||
luqui | nothingmuch, pong | 12:23 | |
luqui figures he should do some type inference exercises | 12:24 | ||
to figure out how one might actually do it over theories | |||
gnop | 12:26 | ||
& | |||
nothingmuch | que es gnop? | 12:33 | |
i was meaning to ask how L::AG is progressing | |||
luqui | 'gnop' eq reverse 'pong' | 12:38 | |
@Larry (notably al and pmichaud) and I are talking about the parrot port of L::AG | 12:39 | ||
nothingmuch | what does it mean in the context? | ||
luqui | unpong? | ||
nothingmuch | what does pong mean in the context? | ||
luqui | basically, pong respond to your ping, and then I realized that I had to go again, so I unresponded | 12:40 | |
heh | |||
nothingmuch | ah | ||
luqui | other than that L::AG is not coming | ||
I'll have some reasonable hacking time come the weekend | |||
nothingmuch | luqui: i have a problem | 13:20 | |
type::operator::nary: layout($$) = { join(" ", $.name, map { layout($$) } @{ $.params }) } | |||
type::operator::binary: parenthesize($$) = { $$->isa("type::operator::pair") || level($$) } | |||
i can't inherit level to any child in $.params | |||
how could i hack in support for level(@.params) = { level($$) } | 13:21 | ||
and then say layout(@.params); # map { layout($_) } @{ $.params } | |||
luqui.ungnop | 13:24 | ||
luqui | well, of course you could always build a cons list and do it that way | 13:37 | |
nothingmuch | eep | ||
that's not perl like =) | |||
luqui | but as far as level(@.params) = ... | ||
well, the current architecture will let you do that | 13:38 | ||
(not hard to hack in) | |||
nothingmuch | yeah, seing the code i figured it out | ||
luqui | but once I switch to the memory-friendly version, it might not be so easy | ||
nothingmuch | since attrdef = attr <perl_block ()> | ||
that's what i was really concerned about - that the next version should not lock this out | |||
luqui | I think it's doable as long as @.params is uniformly typed | 13:39 | |
nothingmuch | that is an easy promise to make | ||
luqui | uh huh | ||
nothingmuch | that is, if @ISA is respected by L::AG | ||
they are all ->isa("type") | |||
luqui | oh, by uniformly typed, I mean has the same set of attributes defined on it | 13:40 | |
nothingmuch | ah | ||
hmm | |||
luqui | as in, they are all cases of the same nonterminal | ||
nothingmuch | teh sux0r | ||
luqui | I think your grammar is a single-nonterminal grammar anyway, so you don't have to worry | ||
nothingmuch | que es nonterminal? | ||
luqui | AGs come from CFG-land | ||
nothingmuch | CFG? | 13:41 | |
luqui | context-free | ||
nothingmuch | ah | ||
i dunno much about that | |||
luqui | nonterminal appears on the left side of the colon | ||
so, traditionally, you have: | |||
foo: bar baz | quux | |||
each of the things on the right ("bar baz" and "quux") is a production | |||
you associate a set of attributes for each *nonterminal*, whereas you provide different implementations for each *production* | 13:42 | ||
you can also think of it this way: data Foo = Bar | Baz | 13:43 | ||
Foo is the nonterminal, Bar and Baz are the productions | |||
so if you have a tree where every node can be anything, then that is a single-nonterminal grammar | |||
nothingmuch | okay | ||
luqui | and uniformedly-typedness is guaranteed | ||
nothingmuch | so how does that help me? ;-) | ||
nothingmuch fails to make the link | 13:44 | ||
luqui | that means that, for your grammar, layout(@.params) will be possible | ||
because @.params will all be cases of the same nonterminal | |||
nothingmuch | but they won't | 13:45 | |
luqui | really? your layout grammar has more than one nonterminal? | ||
nothingmuch | list a has only one child in @.params | ||
it's type::operator::nary->new(list => type::variable::free->new); | |||
but you can parametrize types over N types | 13:46 | ||
that is, you can parametrize nary type operators over N type parameters | |||
luqui | let me ask you this: are there any types in your AG that have an attribute that another type doesn't? | ||
nothingmuch | oh | 13:47 | |
i thought that by the same attrs you meant same definition of attrs | |||
not same names | |||
luqui | nononono, that wouldn't be useful at all | ||
nothingmuch | right | 13:48 | |
well, not now | |||
but that's only because some aren't used | |||
there is no reason not to have them | |||
(but it would be nice if they were auto generated ;-) | |||
luqui | anyway, I'm going to take a nap. Long day ahead, and haven't slept enough. | 13:49 | |
luqui the sleep pussy & | |||
nothingmuch | ciao | ||
joao is surprised. These guys really sleep :) | 13:58 | ||
nothingmuch | =) | 13:59 | |
*fzzzzzzzzzzzzzzzz* went my brain | |||
when typing length :: list a -> int somehow an instantiated variable gets instantiated into itself | 14:00 | ||
oh, right | 14:05 | ||
since it remains generic it's the same var. | |||
doh! | |||
bhoult | is there a way to get perl to log every program that it runs? | 14:16 | |
nothingmuch | bhoult: yes, but that is entirely un perl related | ||
what you need to do is create a C wrapper | |||
that logs argv to a file | |||
and then execs perl with the same args | |||
and then put that in place of perl | |||
and rename perl to perl_orig or something like that | 14:17 | ||
QtPlatypus | bhoult: Perhaps you should ask on one of the #perl channels | ||
bhoult | ok, thanks. | ||
QtPlatypus | nothingmuch: Personally I would run perl under a truss and then look for the exec'es | ||
nothingmuch | then you understood differently than I did | 14:18 | |
i thought he wanted it to log every script that is run by perl | |||
and you thought he wanted it to log every command that a perl script runs | |||
bhoult | I want it to log every script that perl runs. | 14:19 | |
nothingmuch | btw, QtPlatypus: search.cpan.org/~rclamp/Devel-Syste.../System.pm | 14:20 | |
14:26
brentdax__ is now known as brentdax
|
|||
nothingmuch | bzzt again | 14:29 | |
svnbot6 | r7306 | autrijus++ | * listop was too eager in globbing up block arguments: | 14:37 | |
r7306 | autrijus++ | f{1}.() | |||
r7306 | autrijus++ | should mean f({1}.()), not (f{1}).(). Thanks to Shillo | |||
r7306 | autrijus++ | for reporting it. | |||
PerlJam | I find it really magical in a way that I can read about a bug on p6l and then when I look at #perl6 it contains comments to the effect that the bug has been fixed. | 14:40 | |
:-) | |||
nothingmuch | oh moose! | 14:41 | |
eric256 continues his quest to learn haskell....this isn't soo bad realy once you start to get some understanding of it ;) | 14:54 | ||
svnbot6 | r7307 | iblech++ | * Usual svn props. | ||
r7307 | iblech++ | * t/builtins/strings/length.t: chars "abcdef" > 4 should (and is) the same as | |||
r7307 | iblech++ | chars("abcdef") > 4. | |||
r7307 | iblech++ | * t/pugsbugs/primitive_named_params.t: Fixed and unTODOed the test. | |||
autrijus | eric256: the distance from 0 to 1 is larger than 1 to maxint :) | 14:55 | |
eric256 | autrijus -> zen master | ||
lol | 14:56 | ||
autrijus | gaal: you made mkdir etc into guardedIO | ||
which means they raise exceptions | |||
but in perl5 they merely return false | |||
that's a change of semantics... I wonder if it's warranted. | |||
nothingmuch tests his connection | 14:57 | ||
autrijus | maybe it will push us into implementing fatalism properly | ||
autrijus ponders. | |||
wow, TSa bowed out. | 14:58 | ||
the same moment as I rebilled the 6.2831 milestone into something more concrete ;) | |||
svnbot6 | r7308 | autrijus++ | * redefine "runtime role composition other features" in the | 15:00 | |
r7308 | autrijus++ | 6.2831 milestone as "type system and linking". | |||
nothingmuch | bowed out of what? | 15:03 | |
eric256 | he bowed out of the mailing ilst | ||
of course then he also asked questions in his message ..... seemed kinda drama queen ish | 15:04 | ||
nothingmuch will have a look | |||
i didn't even understand his goodbye | 15:06 | ||
svnbot6 | r7309 | nothingmuch++ | Blondie's milner.pl | ||
r7309 | nothingmuch++ | * recursive functions, and generic recursive functions | |||
r7309 | nothingmuch++ | * initial generic vars includes the ones from the prelude (silly me ;-) | |||
kolibrie | wow # re TSa | 15:08 | |
nothingmuch wonders why so many people are wasting their time gauging and inspecting kwalitee | 15:11 | ||
Limbic_Region | dunno | 15:13 | |
my one and only module is lacking pod coverage testing and dependency in another module | 15:14 | ||
I am not going to worry about that | |||
eric256 | kwalitee? | ||
nothingmuch | Limbic_Region: the problem is that instead of pod coverage they are testing for a test that tests pod coverage | 15:15 | |
they are completely insane | |||
eric256: kwalitee is a measure of how good a module is | |||
based on some traits of the distribution | |||
"it sounds like quality, but it isn't exactly quality" | 15:16 | ||
they test every dist on cpan | |||
and make sure that: | |||
it expands properly, it has META.yml, it has a Makefile.PL or a Build.PL, it has a license, a README, a Changelog, etc | |||
which is, on the whole, OK | |||
but they're really getting carried away on the perl-qa list | 15:17 | ||
adding weird metrics for these things | |||
which make absolutely no sense | |||
and my grudge about it is that so much effort is going into it, when it could be wasted on actually improving a modules *interface* | |||
gaal | autrijus: well, we have to hash out lexical pragmas for that.... | 15:21 | |
and yeah, i wasn't sure aboubt semantics; i thought everything is fail-based now except when it obviously doesn't make sense (like readline) | 15:22 | ||
nothingmuch | gaal.ping( efilnikufesin ) | 15:23 | |
gaal | nothingmuch.pong(what!?) | 15:24 | |
nothingmuch | nay nay, efilnikufesin is someone you know | 15:25 | |
ping him | |||
gaal | is he!? | ||
nothingmuch | yes | ||
the other yuval from israel.pm | |||
efilnikufesin | yup | ||
gaal | efilnikufesin: i'm glad irssi has nick completion. ping. | 15:26 | |
efilnikufesin | heh, sorry, freenode wouldn't let me use my regular nickname | ||
nothingmuch | yeah, I hasn't read past 'efi' yet myself ;-) | ||
efilnikufesin | SO I had to come up with an [not so] original one | ||
gaal | and hi :) | 15:27 | |
(i have to go for a while in about 2) | |||
efilnikufesin | it's an Anthrax song, nothingmuch :) | ||
nothingmuch | i dunno who anthrax are | ||
gaal | nothingmuch: won't your proposal for `is sensitive` be utterly slow? | 15:28 | |
gotta moose. later! & | |||
nothingmuch | no | ||
type inferrence should figure out what types could any container possibly contian | 15:29 | ||
and generate code to raise events only for containers that could contain types with events | |||
SamB | nothingmuch: you seem to expect an awful lot from type inference... | 15:30 | |
nothingmuch | yes | ||
i think it's the key to allowing dynamic languages to actually at all in the context of the dynamism that perl 6 will have | 15:31 | ||
now, ofcourse, if there is a balance, you don't need to invoke it | |||
for example, if you know there are no events for tainting | 15:32 | ||
or no slow thingies around | |||
then you don't need to infer types to make sure you are not doing slow things where you don't need to | |||
svnbot6 | r7310 | iblech++ | * Moved the now succeeding | 15:36 | |
r7310 | iblech++ | t/pugsbugs/{parsing_hash,attribute_list,parsing_braces_in_rules}.t out of | |||
r7310 | iblech++ | pugsbugs/. | |||
r7310 | iblech++ | * Note that map-and-sort-in-for.t and grep-and-sort-in-for.t would pass too, | |||
r7310 | iblech++ | if "grep { 1 } @array" parsed (it did, but probably the . precedence fix | |||
r7310 | iblech++ | broke it). | |||
rafl | Is it possible to build a pugs shared library? | 15:44 | |
eric256 | heheh my tutorial hit a part where they use a continuation to mimick a fold ..... but i wasn't realy friends with fold to start with. ;) and the \x + function calling with no parans or commas left me a little lost. ;) | 15:45 | |
gonna try an reright the example with better variable names than x t and g .lol | 15:46 | ||
nothingmuch | rafl: autrijus is working on it (the cabalization stuff relates to that) | ||
rafl | nothingmuch: Ah, fine. Will it be part of 6.10? | 15:47 | |
Err, 6.2.10. | |||
nothingmuch | i dunno | ||
rafl | Who was that guy that wanted to port parrot to VMS? dudley_ maybe? | ||
dudley_ | Yeah, that was me | ||
That was back when I had a much more plentiful tuit supply, though | 15:48 | ||
eric256 finds a typo in the example...that made a bid difference ;) | 15:51 | ||
rafl | My dict doesn't know about tuit. What's that? | 15:52 | |
nothingmuch | you mean a big difference | ||
eric256 | that too | ||
nothingmuch | rafl: when you get to it | ||
get tuit | |||
or get a round tuit | |||
SamB | rafl: they come in round or square | ||
nothingmuch | that means you have time | ||
rafl | OK, thanks. | ||
SamB | a round tuit == "around to it" | ||
nothingmuch | when someone says they will do something when they get around to it | 15:53 | |
rafl | Ah, now it actually makes sense. :-) | ||
nothingmuch | you can give them one of these: www.myrtlewoodgallery.com/get_a_round_tuit.htm | ||
rafl | OK, does the cabal stuff already work? What's the prefered way of building pugs? | ||
nothingmuch | autrijus: ping | 15:54 | |
rafl | Woo.. compiling the prelude seems to be broken. | 15:55 | |
unexpected "j" | |||
expecting expression | |||
at tmp-Prelude.pm line 245, column 19 | |||
nothingmuch | the prelude is preprocessed? | 15:56 | |
eric256 | haskell q: can i add parans around functino calls to make them clearer? | ||
tried making cfold' f z (x:xs) = f x z (\y -> cfold' f y xs) into cfold' f z (x:xs) = f( x z (\y -> cfold' f y xs)) but it gets mad and spews lots of errors | |||
integral | eric256: you need to use them like in Lisp (f args), not f(args) | 15:57 | |
eric256 | ahh. thanks | 15:58 | |
rafl | nothingmuch: It's precompiled for performance reasons, afaik. | ||
integral | you can also use $ to chain functions together as it is very low precedence: f x $ \y -> ... === f x (\y -> ...) | ||
nothingmuch | i know it's compiled, and then the hs code is preprocessed | ||
but tmp-Prelude.pm is kind of weird | |||
eric256 | (\y ) is a continuatino being passed to f in this case | ||
nothingmuch wonders what happenned to iblech | 16:03 | ||
autrijus | rafl: fixing | 16:04 | |
rafl | autrijus: Thanks. | ||
eric256 beleives he finaly understands the continuations example....first time this guy picked realy bad variable names and reused the same names in different functinos for different uses....oiu | 16:10 | ||
nothingmuch | eric256: what example is that? | ||
svnbot6 | r7311 | autrijus++ | * Fix prelude parsing; the last "fix" prevented the | 16:11 | |
r7311 | autrijus++ | map { ... } @foo | |||
r7311 | autrijus++ | form, which is doubleplus nongood. rafl++ | |||
eric256 | nopaste | 16:14 | |
lol. i can never remember how to wake that bot up. | |||
perlbot nopaste | |||
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
pasteling | "eric256" at 66.102.136.70 pasted "Continuations with Folding" (4 lines, 118B) at sial.org/pbot/13477 | 16:15 | |
eric256 | one part still has em confused in the fourth line it does | ||
f x (g t) -- what is happening with the g t there? | 16:16 | ||
i think they are being pass to x wich is a function at that point, but i'm not certain | |||
nothingmuch 's brain starts fizzing and bubbling again | 16:17 | ||
eric256 | yea i don't think its the best example for a begginers tutorial. lol | 16:18 | |
qwr | eric256: g is probably a function and t is applied to it | ||
eric256: f x returns function and (g t) result is applied to the returned value | 16:19 | ||
rafl want's to check in a first version of his XML::SAX port. It doesn't do anything usefull currently, but I'd like to have some help because I run into somthing that seems to be a pugs bug. | |||
checking it in seems a quite easy way so everyone can take a look at the code and play around with it. | |||
qwr | eric256: together it's like two arguments to f (called currying) | 16:20 | |
eric256 | thanks qwr...your right...i'd been looking at it from the wrong angle | ||
somehow i forgot all about the recursive part of the fold...that makes nearly perfect sense now....not enough to rewrite the example coherntly but enough for the momemnt | 16:21 | ||
mement. thanks | |||
gaal | rehi | 16:22 | |
svnbot6 | r7312 | rafl++ | r16678@ata: rafl | 2005-10-05 18:24:00 +0200 | 16:25 | |
r7312 | rafl++ | * Added first bits of an XML::SAX port. Doesn't do anything useful yet. | |||
r7313 | rafl++ | r16679@ata: rafl | 2005-10-05 18:24:40 +0200 | |||
r7313 | rafl++ | * Removed some accidently checked-in auto-generated files. | |||
rafl | Would someone please try to execute 'XML::SAX.load_parsers.perl.say' and tell me why the generated code doesn't contain the expressions captured in line 45? And why the generated code can't be evaled again. | 16:28 | |
Looks like a kind of pugsbug to me. | 16:29 | ||
autrijus | looking. | 16:39 | |
stevan | hey autrijus :) | ||
autrijus | yo stevan :) | 16:40 | |
I need some brains to think about perl5/ installation problem | 16:41 | ||
as currently, when you "make install" pugs, "pugs -BPerl5 ..." does not work | |||
because metamodel etc are not installed. | |||
kolibrie | eric256: which haskell tutorial are you following? /me might try if it's working for you | 16:42 | |
autrijus | I can see two options; one is to move them /en masse/ into pugs's perl6 sitelib | ||
under perl5/ too | |||
stevan | hmm | ||
do we really need to install that stuff? | |||
by default I mean? | |||
autrijus | another option is to install them as regular CPAN modules; either bundling, or list them as optional dependency and release them separately to cpan. | ||
stevan: that's part of the question yes. | |||
"release them separately" means they are likely to be useful without pugs. | 16:43 | ||
if so, we can list a Bundle::Pugs and list them | |||
and they'd follow their own schedule | |||
if not, then install them all into p6 sitelib makes sense. | |||
ideas? | |||
stevan | hmmm | 16:44 | |
thinking | |||
autrijus | cool, I'm taking a cycle to look at XML::SAX | ||
kolibrie | they'll only be needed for -BPerl5 once MM2 is haskelized? | ||
stevan | when do you plan to release? | ||
autrijus | stevan: in 48 hrs | ||
nothingmuch | autrijus: i need advice | ||
stevan | I think the shorter route is best then | ||
autrijus | kolibrie: "they" means -BJS and -BPerl5 | ||
nothingmuch | i'm pondering implementing type::operator::typeclass | ||
stevan | putting into lib/ | ||
autrijus | kolibrie: has nothing much to do with MM2/Haskell runcore | 16:45 | |
nothingmuch | and type::operator::oo | ||
autrijus | nothingmuch: in p5 for blondie? | ||
nothingmuch | in the milner script right now | ||
autrijus | stevan: which lib? lib6? | ||
nothingmuch | to be backported to plondie | ||
blondie | |||
typeclass is kind of trivial | |||
autrijus | nothingmuch: okay. advice? | ||
stevan | autrijus: whichever one is easier | ||
kolibrie | autrijus: I thought "they" were the perl5 metamodel modules | ||
nothingmuch | but how would OO be compiled to a lambda calculous? | ||
without losing information? | |||
autrijus | kolibrie: that, and PIL2JS, and PIL-Run, and Perl6-* | 16:46 | |
nothingmuch | i guess i need to look at CLOS | ||
stevan | I know I wont have enough tuits over the next 48 to put the MM up on CPAN seperately | ||
autrijus | nothingmuch: you use recursive polymorphic record types. | ||
nothingmuch | that sounds scary | ||
autrijus | nothingmuch: see OCaml, or better TaPL, about featherweight java :) | ||
nothingmuch | tapl hasn't arrived yet =( | ||
i wish it will | |||
this stuff would be *so* much easier | |||
essentially we have two record types | 16:47 | ||
for every two record types | |||
we have another type that is the set of keys which both share? | |||
that is their supertype? | |||
autrijus | stevan: okay. in that case I'll install everything into perl6's sitelib as perl5/ | ||
stevan: and we can figure out proper partition laterz | |||
stevan | yes | 16:48 | |
I will need to chat with putter and fglock | |||
autrijus | nothingmuch: usually OO needs subtyping. | ||
kolibrie | (less work)++ | ||
stevan | re: p5 stuff | ||
autrijus | nothingmuch: the could be nominal subtyping, where each type remembers its parents | ||
nothingmuch: or structural subtyping, where any record type can subtype another simply by containing the same fields. | |||
nothingmuch: perl6 is definitely nominal. | 16:49 | ||
stevan | nothingmuch: OO in pure lambda calculus ,.. hmmm ;P | ||
autrijus | nothingmuch: see O'Haskell page for further enlightenment | ||
eric256 | kolibrie - www.isi.edu/~hdaume/htut/ is the tutorial i'm following. working well for me | ||
autrijus | (and my GHC hackery would help to bring them into reality) | ||
nothingmuch | isn't theory.pod all about saying that perl 6 is nominal typing appearance in structural typing semantics? | ||
autrijus | nothingmuch: www.cs.chalmers.se/~nordland/ohaske...urvey.html | ||
nothingmuch: yes. | 16:50 | ||
nothingmuch: it layers a structural (duck) foo on top of nominal (type) bar. | |||
nothingmuch | duck? | 16:51 | |
autrijus | "if it can do such and such things it's naturally of this type" | ||
without predeclaration | |||
kolibrie | eric256: thanks | ||
nothingmuch | ah | 16:52 | |
nothingmuch will try to do typeclasses | |||
and then record types | |||
with simple nominal inheritence | |||
and then try to reimplement that with structural semantics | 16:53 | ||
stevan has to $work & | |||
nothingmuch | and then try to make it support OO better | ||
and then try to translate it all to theories | |||
luckily it's the holiday season | |||
xinming_Beijing | autrijus: hmm, did you edit the overview please? hmm, I checked out the latest revision just now, and found overview has been updated. So, May I know where the modification is... So, I can update these information. | ||
nothingmuch | i should have lots of vacation time in the next month | ||
autrijus | xinming_Beijing: one single update, line 169: | ||
<li>6.2831: åå«ē³»ē»ļ¼type systemļ¼äøé¾ę„ļ¼linkingļ¼ć</li> | |||
nothingmuch | anyway, dinnertime | 16:54 | |
then I have to finish the rule translation | |||
autrijus | xinming_Beijing: following the CUFP presentation, I've refined the 6.2831 milestone from the vague "random runtime features like role composition" into the more specific "type system and linking". | ||
nothingmuch: cool, much thanks | |||
nothingmuch | autrijus: is the plan sensical? or am i missing too much knowlege? | 16:55 | |
xinming_Beijing | autrijus: hmm, the word "type" in Simplified Chinese, It's normally called "ē±»å" or "åå·", I will update it soon. :-) | ||
autrijus | nothingmuch: it's sensical and I think you'll enjoy figuring out things | ||
xinming_Beijing: please do update it :) | |||
xinming_Beijing++ | |||
nothingmuch | alrighty | ||
luqui - i need $grammer->ammend('foo: ...') to add attribute defs to grammars | 16:56 | ||
i don't need it, but it would be nice | |||
nothingmuch hates ACM more every time he reads the words "controlled feature" | |||
autrijus | er, "amend" | ||
nothingmuch | spelling was never my forte | ||
never will be | |||
autrijus | xinming_Beijing: also, is "macros" "å®é"? I thought it's "å®" | ||
the milestone after that | 16:57 | ||
nothingmuch | autrijus: yesterday or before you mentione "From ML Type Inference to Stratified Type Inference" | ||
autrijus | nothingmuch: yes, two-phase inference. | ||
nothingmuch | i can't find anywhere except acm | ||
autrijus | nothingmuch: can't be. | ||
nothingmuch | perhaps it's a slightly diff title? | ||
www.google.com/search?num=30&hl...tnG=Search | 16:58 | ||
autrijus | cristal.inria.fr/~fpottier/publis/p...nas-05.pdf | ||
xinming_Beijing | autrijus: normally å® | ||
nothingmuch | grazie | ||
xinming_Beijing | autrijus: If we use macros set, then é must be used. | ||
autrijus | k | 16:59 | |
but it's not a set | 17:02 | ||
it's just macros | |||
xinming_Beijing | autrijus: hmm, But I will update it also, In fact, I can understand what macro mean. And å·Øé is also used from some old-days books, hmm, IIRC The earlier book also č½Æä½. But now, all books use č½Æ件 | ||
autrijus | so please fix as desired | ||
yeah. those are zh-tw words :) | 17:03 | ||
xinming_Beijing | autrijus: then, It must be å® | ||
autrijus | cool | ||
xinming_Beijing | I did a fix to it | ||
svnbot6 | r7314 | yiyihu++ | * Correct a translation for the word "macro" | 17:11 | |
r7314 | yiyihu++ | * Update the overview according to the modification. | |||
rafl | autrijus: Found something out about that strange XML-SAX behaviour? | ||
geoffb | nothingmuch, what does ACM mean by "controlled feature"? | 17:18 | |
autrijus, did you get a chance to look over/correct my STATUS update from last night? | |||
nothingmuch | geoffb: that i need to pay to read the article | 17:19 | |
geoffb | oh. ewww. | ||
Hmmm. How much does ACM membership cost? Don't members get free access? | |||
autrijus | rafl: I see Features | ||
('Features' => {.}) | |||
geoffb | (Not that I at all disagree that paying for basic CS knowledge is very, very sad . . . .) | ||
autrijus | rafl: \Class.new(('known_parsers' => [{('Features' => {.}), ('Name' => MkMatch {matchOk = True, matchFrom = 1, matchTo = 19, matchStr = "XML::SAX::PurePerl", matchSubPos = [], matchSubNamed = {}})}, {('Features' => {.}), ('Name' => MkMatch {matchOk = True, matchFrom = 1, matchTo = 16, matchStr = "XML::SAX::Expat", matchSubPos = [], matchSubNamed = {}})}, {('Features' => {.}), ('Name' => MkMatch {matchOk = True, matchFrom = 1, matchTo = 25, matchStr = " | 17:20 | |
joao | nothingmuch, do you need ACM articles? | ||
;) | |||
nothingmuch | joao: not right now | ||
PerlJam | geoffb: It used to be about $25/year for students and $100/year for non-students for ACM membership. I don't know what it is these days. | ||
rafl | autrijus: Yes, but Features should have a hash as its value. | ||
nothingmuch | autrijus found something for me | ||
joao | nothingmuch, if you need, I can try to get it... | ||
nothingmuch | okay | 17:21 | |
legally? | |||
joao | Yes | ||
I have full access to the ACM portal | |||
rafl | autrijus: Not something that is a syntax error when serialized using .perl. | ||
geoffb | PerlJam, ah. Not as bad as I expected | ||
nothingmuch | so wait, they charge for the storage and retrieval? they don't have the copyright on the actual articles? | ||
autrijus | geoffb: I did and it looks good. I think I need to transclude the "toward 6.28.0" plan from my journal to there | ||
geoffb: help welcome, or I can do it myself | |||
joao | nothingmuch, but some articles that are listed there can't be downloaded | ||
autrijus | rafl: oh, you think it's a .perl bug? | ||
geoffb | autrijus, if it's just C&P, go for it. If you have to think, I can take a look in a bit. | 17:22 | |
joao | nothingmuch, the have copyrights, I suppose | ||
nothingmuch, but they provide pdf's and html version of their papers | |||
to members | |||
nothingmuch | anyway, i'll remember to bug you when i hit a wall the next time | ||
joao | sure | 17:23 | |
PerlJam | geoffb: Ah, according to their website, it's $99/year for "professionals" and $198/year for professional membership plus ACM Digital library. | ||
(and other stuff) | |||
joao | If you need from other scientific resources I can try to get it too :) | ||
elsevier, .. | |||
autrijus | geoffb: I have to think about the org, but I want your column more :) | ||
joao | PerlJam, yes, but for students is cheaper | ||
PerlJam | joao: yeah, they have all sorts of different plans for students. The cheapest appears to be about $20/year. | 17:24 | |
geoffb | PerlJam, so ~$200 to be able to read the articles. Annoying but not horrible for a CS pro in the US, but pretty brutal for non-pros / non-US types | ||
PerlJam | looks like $42/year for membership + digital library (for students) | ||
geoffb | autrijus, OK, then article comes first. Hope it lives up to the hype -- I've got sick head today. | ||
geoffb rants uselessly about how much sinus infections suck | 17:25 | ||
PerlJam | and $62/year if you want the subscription to Communications of the ACM | ||
(as a student) | |||
joao | yes | ||
that's it (I guess) | |||
PerlJam hasn't been an active member of the ACM in almost 10 years. | |||
rafl | autrijus: Yes. @config[-1]{"Features} seems to have the right content. | 17:26 | |
wolverian | PerlJam, our university provides access to the ACM digital library, which is nice | 17:35 | |
xinming_Beijing | hmm, what's the differences between `{}' and `do { }' are please? | ||
PerlJam | wolverian: cool | ||
xinming_Beijing: "do " | |||
xinming_Beijing | closure seems to be a do command. | 17:36 | |
does `do' here mean do immediately. and closure will "do" while you are calling it? | 17:37 | ||
17:37
noone2 is now known as mikemonster
|
|||
joao | {} is not haskell valid syntax, is it? :) | 17:38 | |
autrijus | xinming_Beijing: do{} is an expression that evaluates the block; {} is just a block. | ||
eric256 | joao i think he meant in pugs | 17:39 | |
PerlJam | xinming_Beijing: {} makes a closure in some contexts, do{} just executes the code in {} | ||
joao | oh :) | ||
stupid me | |||
nothingmuch | sub do (&code) { code() } | ||
wolverian | xinming_Beijing, in void context closures are automatically run - I think they're equivalent to 'do { }' there | 17:40 | |
autrijus | rafl: got it. fixink | ||
wolverian | I also seem to remember that they're run in 'sub foo { bar; { ... } }' automatically, which is somewhat bizarre | ||
autrijus | wolverian: but if you want to return {}, you can write return {}. | 17:41 | |
wolverian | autrijus, right, but it makes no sense to me. | ||
I recall someone explained the logic to me last time, sorry if I'm bothersome :) | |||
PerlJam | Perl6 just looks for a leading pair to distinguish {}-hash c'tor from {}-closure c'tor, right? | 17:42 | |
autrijus | rafl: "our" does not work yet, that's why. | ||
rafl: or maybe not, hm. still thinking | 17:43 | ||
rafl: turns out may be due to depth... | 17:56 | ||
the "." was abbreviated "..." | |||
I increased the depth. recompiling | |||
yup. increased so it dumps until level 1024. | 17:57 | ||
rafl: fixed. thanks! | 17:58 | ||
gaal | yo. t/builtins/arrays_and_hashes/pairs.t:73 parsefails. should it? | 18:00 | |
$hash_of_1_pair.pairs.sort.map:{ .key~'='~.value }.join( ',' ) | |||
autrijus | aw, must be due to the new blockdot bug | 18:03 | |
svnbot6 | r7315 | autrijus++ | * Increase .perl's recursion level so it won't turn into "..." | ||
r7315 | autrijus++ | until level 1024 -- in contrast to 10 before. | |||
r7315 | autrijus++ | * Also, when it does reach there, output "{...}" instead of "{.}". | |||
autrijus | I posted p6l for clarif | ||
s/bug/fix/ | |||
s/fix/bug/ | 18:04 | ||
anyway, I'm fixing the bug. or bugging the fix. | |||
gaal | big flop operator, or flip bug | ||
xinming_Beijing | hmm, In fact, after `$var ?? true :: false' 's changed into !!, I wonder if !! will be the specification, As Larry said to use it for a week. :-) | ||
svnbot6 | r7316 | gaal++ | getc, like readline, needs guardIOexcept [(isEOFError, undef)] | 18:09 | |
autrijus | gaal: you saw my comment re mkdir? | 18:15 | |
btw, parser fix bugged, committing after test | |||
gaal | autrijus, yes, sounds like a reason to push lexical pragmas in :) | 18:16 | |
nothingmuch | hmm | 18:17 | |
gaal | i don't mind reverting to undef in this release of course, if we won't make it | ||
autrijus | I don't mind it being fatal either. | 18:18 | |
anyway, the parsing fix is in. | |||
svnbot6 | r7317 | autrijus++ | * gaal reported the block parsing fix is still buggy, so now | 18:21 | |
r7317 | autrijus++ | I made sure that adverbial blocks parse differently from | |||
r7317 | autrijus++ | nonadverbial ones: | |||
r7317 | autrijus++ | pugs> :d f{x}.z | |||
r7317 | autrijus++ | App &f (: App &z (Syn "sub" {sub {...}}: )) | |||
r7317 | autrijus++ | pugs> :d f:{x}.z | |||
r7317 | autrijus++ | App &z (App &f (: Syn "sub" {sub {...}}): ) | |||
nothingmuch | can anyone help with finding out what PGE emits for e.g. p6rule_like('abcdef', 'bcd', qr/0: <bcd @ 1>/, '$0 capture'); ? | ||
#parrot people are not responding | 18:22 | ||
autrijus | ok, I'll shift to perl5 installation | ||
then back to cabalization | |||
nothingmuch: ...particle is handling it now | |||
gaal | i gotta run for a bit... later! & | ||
dduncan | goodbye and hello | 18:23 | |
I understand that today's focus is getting the tests to work, for a 6.2.10 release, later today or so? | |||
autrijus | dduncan: yes! | 18:25 | |
dduncan: changelog too | |||
dduncan | I hear you | 18:26 | |
svnbot6 | r7318 | nothingmuch++ | Some [slightly broken] progress in milner.pl | ||
r7319 | gaal++ | some TODOifications | |||
joao | nothingmuch, which articles are you reading to make the implementation? | 18:28 | |
nothingmuch | joao: so far only the one mentioned in the comments | 18:29 | |
joao | let me see :) | ||
nothingmuch | Basic Polymorphic Typechecking | ||
it was very nice | |||
joao | thanks | 18:31 | |
svnbot6 | r7320 | nothingmuch++ | Oh shit! The reason the test failed was that the wrong variable name was used (list_plus_ten or plus_ten) | 18:32 | |
r7321 | iblech++ | * Usual svn props. | 19:03 | ||
r7321 | iblech++ | * Moved t/pugsbugs/{map-and-sort-in-for,grep-and-sort-in-for}.t out of | |||
r7321 | iblech++ | pugsbugs/, as grep { 1 } @array works again, autrijus++ | |||
r7321 | iblech++ | * t/statements/do.t: Should "do 42" work? | |||
r7321 | iblech++ | * t/pugsbugs/{cast_undef_shortcircuit,parsing_if,attribute_of_return_value}.t: | |||
r7321 | iblech++ | * unEVAL. | |||
autrijus | iblech: blib6/lib/perl5/* . | ||
autrijus also needs to list optional deps | 19:05 | ||
obra | Somehow, I saw "optional sleep" | 19:06 | |
autrijus | I think you need mandatory sleep. | 19:07 | |
:) | |||
obra | :) | ||
svnbot6 | r7322 | autrijus++ | * copy perl5/ into blib6/lib/perl5/ for installation. | 19:09 | |
eric256 needs extended sleep ;) | 19:19 | ||
dduncan | quick question: does the current pugs support an equivalent to Perl 5's concept of labels, such as one can use with a 'next' or 'last' or etc? | 19:23 | |
autrijus | eric256: you can get an extra-large dose of sleep :) | ||
dduncan | attempting to use them like in perl 5 was a compile error; commenting them out made compile work | ||
autrijus | dduncan: no, it's planned along with gaal's pragma work. | ||
dduncan | so I'll commit with them commented out, then | 19:24 | |
autrijus | may or may not make the release; if not, then after the release | ||
nothingmuch | GRR | ||
nothingmuch is leaking closures somewhere | |||
autrijus | nothingmuch: mm? | ||
p5 closures? | |||
you can trivially leak them ;) | |||
nothingmuch | no, it's more than that | ||
pasteling | "nothingmuch" at 82.81.247.180 pasted "the bad code" (16 lines, 358B) at sial.org/pbot/13483 | 19:25 | |
eric256 | haskell feels alot like pascal sometimes....keyword/module/pacakge wise. at least from what i remember of evil pascal | 19:26 | |
nothingmuch | for some reason $against gets 'abc' twice when it should be getting 'abc' and then 0 | ||
nothingmuch slaps eric256 | |||
don't you dare speak about haskell that way | |||
eric256 | lol | ||
nothingmuch taught pascal recently | |||
it sucks so bad i'd prefer to be a wartime prostitute than a pascal programmar | 19:27 | ||
eric256 | LOL | ||
and they insist on teaching it in school | |||
autrijus mumbles something about fortran. | |||
nothingmuch | haven't done that | 19:28 | |
autrijus | good, because you'd rather be a wartime soldier than a fortran programmer | ||
dudley_ mumbles something about DEC BASIC | |||
geoffb | .oO( VAX Assembly -- I got the last year of it, before my university switched to teaching MIPS ) |
19:29 | |
xinming_Beijing | autrijus: hmm, How can we get the current time string using localtime please? | ||
`localtime time` doesn't work. :'( | |||
autrijus | in p5? | ||
xinming_Beijing | no pugs | ||
in pugs | |||
nothingmuch | OMG!!!!!!!!!! I AM SUCH AN IDIOT | ||
nothingmuch was programming bash in perl | |||
used $1 instead of $_[0] | 19:30 | ||
which was already shifted into $str anyway | |||
autrijus | xinming_Beijing: or no, I'm not sure. look at src/perl6/Prelude.pm | ||
there's no stringification method there | |||
svnbot6 | r7323 | Darren_Duncan++ | /ext/Locale-KeyedText : corrected 2 files so that everything compiles; in KeyedText.pm, commented out any labels used with next/last (todo, uncomment when labels implemented); in t_LKT_Util.pm, corrected an actual syntax error | 19:33 | |
nothingmuch | woot! | 19:34 | |
first ~150 tests programmatically ported to parrot | |||
no Test::Base yet | |||
but it's easy to split that up | |||
xinming_Beijing | I will get {obj:Time::Local} for the function localtime, Is that the right behavior? | 19:35 | |
autrijus | xinming_Beijing: yes, but it really needs a good stringification method | ||
19:36
brentdax__ is now known as brentdax
|
|||
xinming_Beijing | autrijus: hmm, so, IMHO, `localtime time` should return the current time "string" | 19:37 | |
autrijus | xinming_Beijing: under string context, yes. | ||
xinming_Beijing | hmm, I don't mean the string itself, But just what pugs should print. | ||
autrijus | yes. | ||
I totally agree. | |||
write a TODO test for it please. | |||
something that compares "{localtime}" against '{obj:Time::Local}' and see they don't match. | 19:38 | ||
:todo<feature> | |||
nothingmuch | p6rule_is("xyz", '\By\B', 're_tests 138 (#168)'); | ||
err, wrong channel | |||
PerlJam | hey, today is wednesday isn't it? | 19:39 | |
autrijus | yes. | ||
eric256 | some places it is ;) | 19:40 | |
PerlJam | perl6cabal have their phone conferences on wednesdays. autrijus, you should join in :) | ||
autrijus | PerlJam: should I. I'm not in the cabal, you know :) | ||
PerlJam | autrijus: no, but you might as well be. :) | ||
autrijus | I was invited in the sketch | ||
but it's semipublic -- #parrotsketch on irc.perl.org -- transcripts are published, and all is welcome to observe | 19:41 | ||
(as in, +m) | |||
eric256 | sketch? cabal? | ||
autrijus | but not the phone conference or the cabal list. | ||
eric256: I guess these should be in the FAQ... | 19:42 | ||
eric256 | hehe. | ||
autrijus | eric256: re sketch, see use.perl.org/~jesse/journal/26995 | ||
re cabal, it's the sixperl list of perl six design team | |||
with weekly conference calls summarized by luqui | 19:43 | ||
# use.perl.org/~luqui/journal/ | |||
obra | all of this is syndicated to planetsix.perlfoundation.org | ||
autrijus | right, which is the One True Portal to all your perl6 news! | ||
obra | woot! | 19:44 | |
autrijus | (suggest new feeds as appropriate to obra.) | ||
obra | thank god. perl6 has one true SOMETHING | ||
eric256 | i didn't even know that part. (about the one true portal, well actualy most of that) | ||
autrijus | obra: ;) | ||
it also has one true operator. | |||
?eval true 'ring' | |||
evalbot_7312 | bool::true | ||
autrijus | see? | ||
obra | what? the hotsprings operator? | ||
autrijus | it rings true | ||
obra groans | |||
autrijus | bad-joke-r-us | ||
eric256: anyway, the cabal's existence was not well publicized until this year | 19:47 | ||
eric256: but its members can be tracked at dev.perl.org/perl6/people.html | |||
which for some reason is missing obra and pmichaud. | |||
eric256 feels as if he suddenly realized the world is run by secret clubs | 19:48 | ||
autrijus | eric256: it's time for you to get illuminated | ||
you can begin by reciting "Hail Eris". | 19:49 | ||
eric256: anyway, so when you see @Larry, that is synonymous to cabal. | 19:50 | ||
eric256 | your such a wealth of information, if your not carefully they might have you wacked for spreading there secrets ;) | 19:51 | |
autrijus | that is why I am actually a committee | ||
you can't squash us all! | |||
autrijus feeds eric256's paranoia some more | 19:52 | ||
eric256 | lol | 19:53 | |
eric256 suddenly has the image of a thousand tiny men inside of a Humanoid robot. ;) | 19:54 | ||
wolverian | autrijus, except when cabal is the haskell release tool.. | ||
autrijus | we are actually a thousand humanoid robot inside a person | ||
wolverian | (haskell, for discriminating oppressors?) | ||
autrijus | we have a dream: one day children of silicon can join hands with children of carbon, and one will be judged by one's .chars instead of one's .elems... | 19:55 | |
wolverian | heh, I immediately thought "perl vs lisp" | 19:56 | |
dduncan | I've discovered an issue with the current pugs, which may be known, where testing a method argument for definedness returns true even when the arg is explicitly passed undef | 19:57 | |
autrijus | dduncan: write a test? | ||
dduncan | I'm trying to recreate it outside of my module | 19:58 | |
nothingmuch | damnit | 20:01 | |
there is some lossy data | 20:02 | ||
autrijus | ok, perl5 installation done. | ||
whew. | |||
Qiang | hi , autrijus. back to tw ? | 20:03 | |
joao | obra, why obra? | ||
autrijus | Qiang: no, in eu | 20:04 | |
svnbot6 | r7324 | nothingmuch++ | partial conversion - currently non-refactored | ||
r7325 | autrijus++ | * For perl5 helpers like -BPerl5 and -BJS, adjust the search path | |||
r7325 | autrijus++ | for the "perl5" library in the order of: | |||
r7325 | autrijus++ | '.', '../..', $installsitelib, $sourcedir | |||
r7325 | autrijus++ | that is mainly to facilitate debugging during development. | |||
Qiang | can never figure out where you are. hehe | ||
finland ? | 20:05 | ||
obra | joao: totally random two syallable word. no relation to any real word | ||
joao | obra, ok, it's a portuguese word :) | ||
obra | Yep. I was at yapc.eu this year. I saw ;) | ||
Also spanish | |||
joao | yaps, do you know what it means? | 20:06 | |
I was at yapc.eu too :-) | |||
autrijus | hm, what's wrong with ext/Getopt-Long/t ? maybe it should be moved as t_disabled as there is no code. | ||
I'll do exactly that | |||
Qiang: correct. | |||
Qiang: going to stockholm, then amsterdam, then stockholm | 20:07 | ||
eric256 has a hard enough time affording staying in one place ;) | |||
joao | autrijus, how much is a plain ticket from "europe" to taipei? | ||
Qiang | nice. hope you have a good time besides pugs :) | ||
autrijus | Qiang: in fact, yes, but pugs is the foreground :) | ||
going to places is, as you know, akin to changing desktop wallpapers to me. | |||
joao: usd$1k, if booked in advance. | 20:08 | ||
joao | not cheap :) | ||
Qiang | hhe. nice comparesion | 20:09 | |
autrijus | far from it. | ||
I mean, far from cheap. | |||
svnbot6 | r7326 | nothingmuch++ | nested groups in rules.t converter | ||
Qiang | that's the advantage of not having to work full-time. but still how you can do the conference thing beyong my believe. | 20:11 | |
autrijus | that's the advantage of minimizing the Real World window :) | 20:12 | |
the disadvantage is, of course, that you miss the ultra high resolution "physics" engine. | |||
Qiang | you can always do that later :) | ||
so when are you back to tw ? | |||
autrijus | not sure there will be a reality around in a few decades, but one can hope. | 20:13 | |
Qiang: in november | |||
Qiang | err . :D | ||
autrijus | Qiang: I'll stay thru the lunar new year, then start wandering around europe indefinitely | ||
Qiang | i haven't spend chinese new year for at least 5 years. | 20:14 | |
europe will be too small for ya. | |||
svnbot6 | r7327 | autrijus++ | * disable Getopt::Long tests because there is no code yet. | ||
autrijus | Qiang: aye... so maybe also canada | 20:15 | |
dduncan | nevermind what I said before ... issue seems to be elsewhere | ||
Qiang | if don't mind the winter here :) | ||
but try vancouver anytime. | 20:16 | ||
autrijus | can't be worse than scandanivia. | ||
eric256 | autrijus did you win the lottery or something? or just realy good at saving and living on nothing? | ||
autrijus | eric256: the latter. | ||
Qiang | autrijus: that's true. | ||
eric256 | i'm assuming no wife and children? if it weren';t for them i'd be rich ;) | ||
autrijus | eric256: and I don't start saving until my bank account hits $0 (minus this month's living expense) | 20:17 | |
Qiang | eric256, lol | ||
autrijus | eric256: aye... vasectomy has its benefits, you know | ||
eric256 | i look back at before marriage and i'm just amazed at how cheap one man can live. ;) | ||
Juerd | Does anyone use their @feather.perl6.nl e-mail address? | ||
It was a much requested feature, but I don't see any evidence of anyone actually using it :) | 20:18 | ||
autrijus | Juerd: I do not | ||
if you start accepting delivery to @no.perlcabal.org or @perlcabal.org (both pointed to the same machine) maybe it would become popular ;) | |||
(or not.) | 20:19 | ||
Juerd | autrijus: I noticed by the amount of spam in your inbox :) | ||
autrijus | lol. | ||
Juerd | Oh, I can make it accept delivery on those domains if you want | ||
autrijus | don't bother really :) | ||
Juerd | Okay | ||
20:19
brentdax__ is now known as brentdax
|
|||
Juerd | Hi Brent | 20:19 | |
brentdax | Hey. | 20:20 | |
Juerd | I'm off | ||
Should anyone wish to comment on feather's email system, please just do so | |||
nothingmuch | eep! | 20:21 | |
Qiang | autrijus, your $work involve catalyst too ? | ||
vladtz | 7323 hangs in t/builtins/io/dir.t memory use is up to 400M and climbing...(Linux build) | ||
autrijus | Qiang: a bit, yes | ||
Qiang | er. xinming in beijing ? | ||
autrijus | vladtz: confirmed. | ||
fixing | |||
Qiang | what's your view on it? stable / good enough ? | ||
autrijus | Qiang: it's good enough, definitely. | 20:22 | |
I'd not call it 'stable'. | |||
nothingmuch | what nagative zero width subpattern assertions cannot be variadic in perl 5? | ||
autrijus | "actively maintained and developed". | ||
nothingmuch: because perl5 is not PCRE. | |||
nothingmuch | no, not why | ||
which | |||
all of them | |||
? | |||
autrijus | all of them | ||
nothingmuch | =( | ||
autrijus | er wait | ||
just behind | |||
nothingmuch | okay | ||
autrijus | ahead is fine | 20:23 | |
you can fake variadic behind using multiple behinds | |||
nothingmuch | no need | ||
Qiang | i see. we have few people from perlchina have interest to learn and to introduce catalyst to others. | 20:24 | |
autrijus | Qiang: cool. I do wonder how soon will there be a catalyst book | 20:28 | |
it seems adequate during this autumn renaissance of perl books | 20:29 | ||
Qiang | chunzi (a member) done some catalyst work (wrote member.perlchina.org) and it looks promising. | 20:30 | |
look at how RoR taken off, perl's framework for webapp need a boost too. | 20:31 | ||
autrijus | I wonder how RoR had taken off really. | ||
it's mostly given the other languages a good shake of reality | |||
and make MVC cool again. | |||
Qiang | well. least generated lots buzz. perl has been quite comparing to python/ruby | 20:32 | |
autrijus | right. buzz. | ||
autrijus ponders an everybody-blog-about-pugs campaign | |||
autrijus decides it's a bad idea instantly | |||
eric256 is confused by ovids email to the list. starts with a "roles shouldn't provide trust" and ends with "thats why i think roles shoudl be allowed to specify trust".......besides the fact that i have no idea how roles actualy help in his example | 20:33 | ||
autrijus | vladtz: fixed. committing... | ||
Qiang | heh. it should be done base on the real work. it will attract people if it's good. | 20:34 | |
if it is good, then some PR doesn't hurt :) | |||
autrijus | right. appropriate PR for appropriate stages. | ||
autrijus mumbles something about Dylan and PR deficiency. | 20:35 | ||
obra | funny. I have friends who were big dylan snobs in the 90s | ||
Qiang | hhe. if i didn't read your journal, i would have no idea about dylan (tho i still do , :) | ||
autrijus | dylan is really pretty good. I shall spend more time playing with it. | 20:37 | |
svnbot6 | r7328 | nothingmuch++ | better version of converter | ||
r7329 | Darren_Duncan++ | some ChangeLog updates | 20:43 | ||
dduncan | eric256, I think I understand what ovid wants, that a role can declare with 'trusts' that only certain other classes are allowed to call its private methods, just as a class can do the same with 'trusts' | 20:46 | |
I think I want the same thing too | |||
where Perl itself enforces these things, and the called method doesn't have to use 'caller' etc to test who called it | 20:47 | ||
fyi, I was going to use a caller-based trick in the perl 5 versions of my classes to simulate the perl 5 private methods, ensuring no one but those classes I approve can call them | 20:48 | ||
I mean, simulate perl 6 private methods | |||
svnbot6 | r7330 | autrijus++ | * gaal accidentally broke readdir by deleting one random line. | 20:55 | |
r7330 | autrijus++ | vladtz caught it right away. | |||
wolverian | autrijus, I've heard dylan is "just a crippled lisp without s-expressions". then again, what language does that not match... | 20:56 | |
autrijus | wolverian: forth does not match. | ||
but indeed | |||
nothingmuch | laundry time | ||
bicycle time | 21:01 | ||
autrijus starts journaling | 21:05 | ||
geoffb | Blog up: www.oreillynet.com/pub/wlg/7996 | ||
*whew* | 21:06 | ||
autrijus | woot! | ||
geoffb | Time for some backlogging, and then $work | ||
autrijus | I've been advertising for you all day | ||
geoffb | heh | ||
I hope it meets expectations, then! | |||
nothingmuch | nothingmuch.woobling.org/p.t | ||
intermediate parrot test stuff | |||
rafl | autrijus: Thank you! | ||
nothingmuch | if someone has debugging tips, that could help | ||
i'm off anyway | 21:07 | ||
autrijus | geoffb: I feel... a bit embarrased I guess, but very grateful for the writeup. | 21:10 | |
it's excellent. | |||
geoffb | thanks | 21:11 | |
autrijus | geoffb++ | ||
geoffb | I had a choice to make you anonymous or not, I decided that people just plain like celebrities. :-) | ||
thanks for the kind words | |||
leo__ | geoffb++ | ||
autrijus | geoffb: hence, the embarrasment | ||
geoffb | and again. :-) | ||
autrijus | but I will celebrate your writeup in my euro oscon talks and shamelessly use them in the takahashi slides :) | 21:12 | |
geoffb | heh | ||
leo__ | $ ./parrot -Ofun examples/pasm/fact.pasm | 21:13 | |
# works | |||
autrijus | excellent | ||
even better, it's strictly equivalent to | 21:15 | ||
$ ./parrot examples/pasm/fact.pasm | |||
hence proving parrot has its sense of fun as builtin | |||
(for some value of proving) | |||
geoffb | heh | 21:16 | |
eric256 | geoffb nice article | 21:18 | |
geoffb | thanks, eric256 | ||
leo__ | autrijus: it's of course optimized fun | 21:20 | |
joao wonders which is the best place to start blogging/journaling | 21:21 | ||
geoffb | use.perl.org. :-) | ||
autrijus | joao: haskell sequence and use.perl are both easy to set up | ||
gaal | rehi. | 21:24 | |
oops :) | |||
joao | geoffb++ # great article :) | 21:28 | |
geoffb | Thanks, joao | ||
autrijus | geoffb's column: www.oreillynet.com/pub/au/2333 | Pugs 6.2.10 coming soon | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net | 21:29 | |
geoffb | thanks, autrijus | 21:30 | |
autrijus | np :) | ||
21:42
joao_ is now known as joao
|
|||
dduncan | I've decided to start smoking ... since it looks so easy now | 21:52 | |
autrijus | cool! | ||
autrijus praises low entry of barrier to smoke.pugscode.org | |||
eric256 | man...just say no...don't you watch the commercials? don't submit to peer presure!! | ||
autrijus further praises nothingmuch for bringing it over to smoke.parrotcode.org | 21:53 | ||
eric256 | oh...ummmm..hhmmmm....nevermind ;) | ||
dduncan | also, I like that new smoke.pugscode.org page | ||
fglock__ | the pugs Marlboro men | ||
eric256 | ummm...the colums on that page have no headings..... | 21:54 | |
dduncan | yes, there is that problem | 21:55 | |
on another note, I think the only runtime problem with /ext/Locale-KeyedText is also the same as what is causing t/builtins/arrays_and_hashes/pairs.t to fail | 21:56 | ||
once that test is made to work, my module probably will too | 21:57 | ||
autrijus | eric256: they have tooltips | 21:59 | |
eric256 | not for me | 22:10 | |
odd | |||
autrijus | firefox here. | 22:11 | |
eric256 | i would swear those werent there a minute ago. lol | ||
firefox here too, but sometimes mine doesn't seem to like tool tips | |||
autrijus | lol | ||
eric256 | shouldn't all the know fails be marked in some way so that you know when something breaks *more* tests? | 22:12 | |
or is there some easy way to tell if a new build is failing more tests? | |||
autrijus | look at the numbers on the smoke page, mostly | ||
we are down to 191 fails. thank eris | 22:13 | ||
(but concretely, thank gaal) | |||
gaal | but it's a good point. it'd be great if the smokeserver stored the yaml data too and diffed it | ||
autrijus | it is. | ||
gaal | you're very welcome | ||
tomorrow (well, today) i'm giving a talk about pugs again | |||
for my local pm group | |||
eric256 | how do you access the diffs? | ||
autrijus | eric256: it's p5 hackery - util/smokeserv/smokeserv-server.pl | 22:14 | |
gaal | eric256: you don't, currently :) | ||
eric256 | ahh | ||
autrijus | eric256: comparing two yaml records, using something like wikipedia's "diff between revs" ui | ||
gaal | though i recall someone used to take the output of `make test` and put it on a wiki | ||
eric256 | blasphemy, the smoke server isn't writtin in perl6!!! what outrage | ||
autrijus | you are welcome to port them! | ||
eric256 | did i say blasphemey? i mean ingenious. ;) | 22:15 | |
autrijus | roflmaohlagh | ||
gaal | hahaha | ||
eric256 | (/me apologies now for any past and or future spelling errors ) | ||
dduncan | I just discovered ... | ||
as I'm attempting to get the smoke utility up and running ... | |||
eric256 | aplogizes....aplogize's...well you get the point | 22:16 | |
dduncan | that it has a half dozen CPAN distro dependencies that I didn't have installed yet, and some are large | ||
so porting all that is non-trivial | |||
autrijus | dduncan: oh? | ||
gaal | eric256: if you do try to diff tests.ymls, make sure you weed out 'time' :) | ||
eric256 finaly reached gaurds in haskel....watch out i'll be hacking on something soon | |||
autrijus | dduncan: I thought it's just LWP. | ||
eric256 | good point gaal | ||
dduncan | I refer to 'make smoke' | ||
autrijus | eric256: I look forward to it | ||
dduncan: ah. right. YAML, Test::TAP::Model, etc | 22:17 | ||
eric256 | yea dduncan i looked into porting Test way back and realized the same thing...but can't you use perl5 modules in pugs...so theoritcaly you could port them over slowly | ||
autrijus | yes, but it is decidedly less fun that way | ||
dduncan | yes, you could | ||
gaal | Test::TAP::HTMLMatrix pulls in petal and stuff. | ||
dduncan | and Petal pulls in stuff | 22:18 | |
autrijus | much more practical though. | ||
eric256 | its like 6 degrees of seperation from Test to every module on CPAN?? ;) | ||
autrijus wonders if "p" in "perl" stands for "playful". | |||
gaal | for `purrs`. | ||
autrijus | eric256: modulo the islands, perhaps | ||
gaal++ | |||
"purrs eyes rolls laughs" | 22:19 | ||
what a fine language. | |||
eric256 | hmm i wonder how hard it would be to map all the dependencies of cpan in some topographical way...could be interesting | ||
autrijus | eric256: Alias did something like that some time ago | ||
gaal | Module::ScanDeps! | ||
autrijus | er, that too. | 22:20 | |
dduncan | I think I just installed all of these, for 'make smoke': Test-TAP-Model, Test-TAP-HTMLMatrix, URI, Petal, MKDoc-XML ... I already had YAML from before, so didn't have to pull that | ||
eric256 | wow... haskell gaurds are like multi methods on crack...this could get fun | ||
gaal | all you need is to install Meta and then run it on that... *duck* | ||
dduncan | about a half dozen dependencies, besides what Perl 5.8.7 bundles | ||
autrijus | gaal: we already Model the Meta | ||
so we never meta model we didn't like. | 22:21 | ||
gaal | dduncan: oh well, at least vanilla build doesn't require all that. if you *do* want to yamlsmoke, it's really just one command, `cpan Test::TAP::HTMLMatrix'. | 22:22 | |
We need more Acme:: modules! | |||
dduncan | sure ... but I didn't do that | ||
autrijus | gaal: it may be nice to adopt ExtUtils::AutoInstall for that I think | ||
gaal | [tense mangling] so... did! | ||
autrijus | saves some trouble for manual chasing | 22:23 | |
gaal | hey, i know the guy who wrote that! | ||
autrijus | sounds like a sick fellow | 22:24 | |
not as sick as a certain person who wrote inc::Module::Install, though | |||
gaal | yeah, i just read the manpage and saw the "block" version of the module... | 22:25 | |
dduncan | it says I should create a .smoker.yml ... | ||
gaal | you don't have to, dduncan | ||
autrijus | I never did | ||
dduncan | what good is it then | ||
gaal | but if you do, your smokes on the server will have your name on them | ||
dduncan | does anyone else do that? | 22:26 | |
autrijus | so you will get extra doses of fame and glory. | ||
gaal | i think i'll add a 'homepage' field there so that googlegreedy people get tempted | ||
dduncan | I'm only inclined to put my name on them if other people are ... not for privacy reasons, but so I don't look greedy | 22:27 | |
gaal | dduncan, it can be useful if for example you're messly like i am, and occasionally submit a smoke with local code variations from the tree | ||
i do it, nothingmuch does it | |||
dduncan | good enough for me | ||
gaal | and i was joking about the homepage :) | 22:28 | |
eric256 | i would run the smoke tests...but i'm betting someone on feather already does and that would be kinda pointless ;) | ||
dduncan | but you and nothingmuch doing it already is enough impetus for me to | ||
gaal | eric256, if you only build on feather then probably, yes | ||
dduncan: what platform are you on? | 22:29 | ||
dduncan | Mac OS X 10.3.9 | ||
gaal | wait, no, feather doesn't autosmoke | ||
dduncan | I'm doing it on my own comp, not a server somewhere | ||
gaal | yeah, most of us are. nothingmuch is on some mac too, but i don't know what version. | ||
eric256: if you need a break from haskell there's one or two improvements in the build system - in fact making automatic smoke submission easier is one of them | 22:30 | ||
eric256 | i'm game | 22:31 | |
dduncan | my situation is different than nothingmuch, since I install pugs in a non-standard location ... I never put it in /usr/local ... | ||
likewise, I leave the systemperl alone and put my own in a non-standard location | |||
gaal | great! grep -r for PUGS_SMOKE_UPLOAD: run-smoke uses it to optionally do something after the smoke | 22:32 | |
but it shouldn't do it that way, it should look for configuraion in config.yml | |||
dduncan | curiously enough, the build info given at the top of the posted smoke files doesn't say what versions of the OS etc are being used | 22:33 | |
gaal | eric256++ | ||
dduncan | for nothingmuch, it simply says darwin-thread-multi-2level | ||
eric256 | grepping now. | ||
gaal | that's $^O, i suppose? | 22:34 | |
dduncan: if you know a portable way to fix that, please do! | |||
dduncan: also, i don't know if nothingmuch is installing at all (i for one never do) | |||
dduncan | I don't immediately know | ||
eric256 | hmmm grep -r is gone and ....still gone...got a better idea where i'll find it at? | ||
gaal | util/run-smoke.pl, but maybe a few loose scrips | 22:35 | |
and probably hack.pod too :) | |||
dduncan | maybe he isn't ... I could have been confused by all the 'standard' paths listed, and absense of other paths, save 'blib6/lib' | 22:36 | |
gaal | i should really sleep, but i'm not sleepy | ||
eric256 | is there another util that is already reading the config file i can use as an example? or just hack something together for a start? | 22:40 | |
gaal | eric256: sure, Makefile.PL uses it | 22:42 | |
eric256 | duh. lol | 22:43 | |
gaal | use PugsBuild::Config; PugsBuild::Config->lookup('ghc_heap_size'); | ||
dduncan | do you know if nothingmuch runs smoke from a cron job or manually? | ||
gaal | cron i think; he updates all the time. | ||
eric256 | soo all i need is 'use PugsBuild::Config' ? | ||
if so then yaml_harness.pl can be simplified too | 22:44 | ||
dduncan | it is perhaps redundant if I do the default one, since he does it automatically and we may have the same system ... however, he doesn't do any other backends | ||
gaal | eric256: that and add a defualt value for your filed | ||
field | |||
eric256 | what is the defualt for that feild? | ||
joao is going to sleep | 22:45 | ||
gaal | plus update the templates... | ||
sec, gotta see what my cat is up to | |||
joao waves | |||
eric256 looks at PugsConfig.pm but it says not to modify it because it was created with util/generate_config ... which doesn't seem to exist | 22:47 | ||
gaal | not that one... sec | ||
you want lib/PugsBuild | |||
lookup raises an error on unknown values, possibly a wrong choice on my part (feel free to change if you think so) -- | 22:48 | ||
eric256 | no such file here.../me starts to feel more like trouble than help | ||
gaal | -- so it has to knwo what values are recognized | 22:49 | |
inc/PugsBuild/Config.pm | |||
my bad | |||
eric256 | yea just found it | ||
gaal | maybe i am sleepy a bit :) | ||
eric256 | okay so right below smoe_concurrent i'll add the default...and a resonable default? | 22:50 | |
gaal | but maybe deprecate the old way instead of removing it completely? i don't know who actually uses it | ||
maybe just nm | |||
yes, exactly | |||
eric256 | what is a reasonable default though? | 22:51 | |
gaal | not to upload, i think | ||
so ~ | |||
which means undef in YAML | |||
well in the perl code say undef | 22:52 | ||
in the examlpe config.yml, util/config-template.yml, put a comment | 22:53 | ||
then run-smoke.pl can look up the smoke server url, and if not null, send a smoke there. | |||
eric256 | k i think...its just running | 22:54 | |
system("$ENV{PUGS_SMOKE_UPLOAD}" ) | |||
right now | |||
gaal | ah, also i have a bug :) lookup, the fool, is checking for defindedness instead of existence | 22:55 | |
i should sleep | 22:56 | ||
eric256 | i have no idea what you are talking about. lol | ||
gaal | i'll fix that then. | ||
eric256 | if ( defined $ENV{PUGS_SMOKE_UPLOAD} ) { # that the line you mean? | 22:57 | |
gaal | nah, in the config.pm. committed. | 22:58 | |
svnbot6 | r7331 | gaal++ | PugsBuild::Config should check for existence, not defindedness, of known | 22:59 | |
r7331 | gaal++ | lookup elements. | |||
gaal | heh, that's 1337 spelled backwards. rawk | ||
eric256 | uhmmm my feather account can't make for some reason | ||
no ghc found....thats just odd. | |||
i gotta run now...can i commit what i've done? no chance to test it yet | 23:00 | ||
gaal | maybe Juerd just apt-get dist-upgraded? | ||
eric256 | and if so how do i commit on svk? i'm used to svn | ||
gaal | since i'm going to bed now and noone's around (i think? hello?) maybe you shouldn't unless you're sure it doesn't break the build | 23:01 | |
clkao | same. just recheckout | ||
gaal | then again if noone's around... | ||
eric256 | hehe i'll set on it..and to it proper in the morning instead of rushing now... | ||
gaal | hah, hello clkao, do you have a trigger on svk? :) | ||
anyway, i'm off for real now | 23:02 | ||
eric256 | i'll even sit on it | ||
later | |||
gaal | good night! | ||
clkao | busy making 1.05 | ||
gaal | clkao++ # making | ||
gaal zzZZZ & | |||
autrijus | g'nite gaal | 23:06 | |
I need to sleep too. | 23:07 | ||
journal up. see ya tomorrow :) |