|
Chip needs help!!! www.geeksunite.net | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste: sial.org/pbot/perl6 Set by theorbtwo on 10 July 2005. |
|||
| svnbot6 | r5380, mugwump++ | Implement the variety of round-like functions (doesn't work - currently commented out) | 00:00 | |
| nothingmuch | *sigh | 00:02 | |
| mugwump | heck, I've got a sub that works interactively in pugs, but when placed in a test script makes pugs bizarrely expect an extra } at the end of file | 00:09 | |
| nothingmuch | runFile is soooooooo slloooooooowwwww | ||
| mugwump | ?eval sub r($n) { ($n<0) ?? int($n-0.5) :: int($n+0.5) }; [ r(0.5), r(0.4), r(-0.5), r(-0.4) ] | 00:10 | |
| evalbot6 | [1, 0, -1, 0] | ||
| nothingmuch | hmm | ||
| nothingmuch is begining to be skeptical | |||
| about env | |||
| autrijus: backlog marker | 00:11 | ||
| i think envBody should be like the lexical env | |||
| containing the AST | |||
| but also outer, pos, lexical variables, etc | |||
| and the 'normal' env should be the dynamic scope only | |||
| anyway, goto was fixed | 00:12 | ||
| envPos was not carried over | |||
| svnbot6 | r5381, nothingmuch++ | Fix goto borkedness - pos was not carried over from caller env | 00:13 | |
| nothingmuch | . o O ( we have more test cases than we've got revisions ) | 00:14 | |
| putter | any thoughts on how I can get from a Rational (ie, Ratio Integer) to a Double? there is fromRational, and then...? | 00:19 | |
| nothingmuch | putter: hoogle is your friend | 00:20 | |
| mugwump | ?eval $?PUGS_VERSION | 00:21 | |
| evalbot6 | \'Perl6 User\'s Golfing System, version 6.2.7, June 13, 2005 (r5381)' | ||
| nothingmuch | fromRat, i would think | ||
| in Numeric | |||
| www-users.cs.york.ac.uk/~ndm/hoogle/ | |||
| search for Rational Double | |||
| specificallly this: www-users.cs.york.ac.uk/~ndm/hoogle...romRat.htm | 00:22 | ||
| putter | yay, it looks like this did it... ((fromRational r)::Double) | ||
| putter looks at hoogle... | |||
| nothingmuch | ah, the inferencer doesn't know if you meant a double or float? | ||
| ah, :i Fractional says Double and Float are also instances of Fractional | 00:23 | ||
| so fromRat is silly | |||
| mugwump | ?eval my $a = { <1 2 3 4 5 6> }; $a<1 ?? "foo" :: "bar"; #> | 00:24 | |
| evalbot6 | [undef, undef, undef, undef, undef, undef] | ||
| putter | nothingmuch: yes, I think that was it. | ||
| mugwump | ?eval my $a = { <1 2 3 4 5 6> }; $a < 1 ?? "foo" :: "bar"; #> | ||
| evalbot6 | Error: cannot cast from VCode (MkCode {isMulti = False, subName = "<anon>", subType = SubBlock, subEnv = Just (MkEnv {envContext = CxtItem (mkType "(mkType "Scalar")"), envLValue = False, envLexical = MkPad (padToList [("$?1",[(<ref>,<ref>)]),("$_",[(<ref>,<ref>)]),("$a",[(<ref>,<ref>)]),("$code",[(<ref>,<ref>)]),("$lang",[(<ref>,<ref>)]),("%_",[(<ref>,<ref>)]),("&?BLOCK_EXIT",[(<ref>,<ref>),(<ref>,<ref>),(<ref>,<ref>),(<ref>,<ref>),(<ref>,<ref>),(<ref>, | ||
| putter | hoogle should go in some doc somewhere... | ||
| nothingmuch | anywho, i ought to sleep | ||
| USETHEM | 00:25 | ||
| ;-) | |||
| putter | :) | 00:26 | |
| 'night | |||
| nothingmuch | is(("a\b" ~~ rx:P5/a\\b/ && $<>), "a\b", 're_tests 205/0 (239)', :todo<bug>); | 00:27 | |
| that's not right, is it? | |||
| \b is bell or backspace (i forget) | 00:28 | ||
| and \\b is backslash b | |||
| Khisanth | neither | ||
| \b is \w on one side and \W on the other | |||
| nothingmuch | no, not in a regex, in a string | ||
| nothingmuch knows his zero-width-assertions | |||
| gotta love em | |||
| Khisanth | bell is \a | 00:29 | |
| nothingmuch | right | ||
| hmm | |||
| in pugs saying "a\b" doesn't work at all | |||
| putter | nothingmuch: how would you (one line) describe hoogle...? | ||
| nothingmuch | putter: cross index of std haskell libs... searchable by type signature, name, etc | 00:30 | |
| putter | tnx | 00:33 | |
| re "a\b", weird. hey, in perl6, let's not follow perl5's example of "you are trying to find \b in the man pages, wuaaaahahahaha". | 00:38 | ||
| svnbot6 | r5382, putter++ | In hack.pod, added a link to hoogle. nothingmuch++ | ||
| putter | Oh. \b is backspace. that makes sense. | 00:39 | |
| ?eval ("a\b" ~~ rx:perl5/a\b/).chars | 00:41 | ||
| evalbot6 | 1 | ||
| putter | My fuzzy recollection is there is code to escape \mumble before handing it off to the rx engine. Perhaps \b isnt done. | 00:42 | |
| Khisanth | ?eval ("a\b" ~~ rx:perl5/a\x8/).chars | ||
| evalbot6 | 2 | ||
| stevan | Guten Abend mein Damen und Herren :) | 00:44 | |
| mugwump | wie gehts, mein freund? | 00:45 | |
| stevan | nadda mucho amigo | ||
| und du? | |||
| mugwump: I added the ability for things like 'Dog-0.0.1-cpan:JRANDOM'->new() to the metamodel today | 00:46 | ||
| mugwump | das Spiel aufpassen, eine Bier essend | ||
| stevan | but shortly after I was questioning that | ||
| (ok, we have reached the end of my German vocabulary, at this point, all I have left is curse words :) | 00:47 | ||
| mugwump | Babelfish++ | ||
| stevan | :D | ||
| mugwump | that's great. hey, I think that stuff I was trying to hardwire into the metamodel will actually be an interesting case of a module that alters the metamodel | 00:49 | |
| ie, the "companion" relationships... like automatic doubly-linked lists | |||
| so, you'd go: | 00:50 | ||
| class Node { has @.children is double_linked(:to<parents>); has @.parents is double_linked(:to<children>) } | 00:51 | ||
| stevan | how would that work exactly? | 00:52 | |
| mugwump | glad you asked :) | 00:53 | |
| stevan | I am not sure I understand the is double_linked | ||
| I mean I understand what you are doing (recursive datatypes), but... | |||
| mugwump | so, double_linked would make the Node.children accessor a Proxy method via the MetaModel | 00:56 | |
| The Proxy method would do set operations to determine "changed" values by an array operation | |||
| (ie, missing/new members) | |||
| Then send messages to those nodes that they need to add/remove $?SELF to/from their @.parents | 00:57 | ||
| stevan | this is for some kind of Tree data structure? | 00:58 | |
| mugwump | they might be on different classes, too; | 00:59 | |
| class Account { has Transaction @.transactions is double_linked(:to<account>) }; class Transaction { has Account $.account is double_linked(:to<transactions>) } | |||
| stevan | ahh, I see | 01:01 | |
| mugwump | So, attribute accessors themselves have "messages" sent to them depending on the context they are used | ||
| ie, a "proxy" accessor is defined as; | 01:02 | ||
| method attribute is accessor( :STORE{ ... }, :FETCH{ ... } ); | |||
| stevan | nice | 01:03 | |
| mugwump | (see also t/oo/attributes/mutators.t) | ||
| stevan | have you proposed that on p6l? | ||
| mugwump | yes, Luke liked it | ||
| status is "tentatively not entirely disapproved of by all(@Larry)" | 01:04 | ||
| However, when you use a subscript operator on an attribute, it needs a different accessor quasi-method to be called; | 01:05 | ||
| $object.attribute<val> # :HASHLOOKUP ? | |||
| $object.attribute{"val"} # :HASHLOOKUP ? | |||
| $object.attribute[123] # :ARRAYLOOKUP ? | |||
| In Class::Tangram, I handle this with a calling convention for attributes considered "containers" - ref, set, array, hash | 01:07 | ||
| eg, you'd call $object.attribute("val"); to lookup - this would be an array or hash deref, depending on the type of "val" | 01:08 | ||
| For example, a property that is an ordered hash would respond to both styles of accessing | 01:10 | ||
| either that, or there is a general :OBJECTREF { ... } quasi-method, that returns a Proxy object which is responsible for responding to the post_circumfix:Ā«<>Ā», etc methods | 01:14 | ||
| See also search.cpan.org/dist/Class-Tangram/...ainers.pod for the rest of the information about the container calling convention stuff | 01:17 | ||
| stevan | this is interesting | 01:18 | |
| definitely not for the newbie :) | |||
| I do like the proxy idea though | 01:19 | ||
| mugwump | proxy objects are specced already | ||
| stevan | on a very very basic level, it seems like you are adding the ability to do more sophisticated accessor/mutators through the metamodel | ||
| yes, but proxy in the object space is less specced/thought out it seems | 01:20 | ||
| the Proxy stuff I have seen is all related to lvalues | |||
| mugwump | sure. perhaps I'll have to write S14 to flesh this out | ||
| stevan | but I have to run for now, I will check it out on p6l though | 01:21 | |
| svnbot6 | r5383, Stevan++ | Perl6::MetaModel - adding a test for some examples in A12; nothing much else :) | 01:26 | |
| r5384, putter++ | * Moved sprintf and Scalar::as to Prelude.pm from Prim.hs. They now correctly handle variously typed arguments. Un-todo-ed 2 tests. Removed a bogus test. | 01:47 | ||
| r5385, mugwump++ | Add a few more tests to rounding tests, and make tests pass by adding to Prelude.pm | 01:54 | ||
| putter | mugwump: I got floor and friends to typecheck. Waiting on a compile to see if they actually work. Does the Prelude.pm stuff obsolete the Prim.hs stuff? | 01:59 | |
| autarch | putter: I don't think so. Isn't it much slower if it's done in the prelude? | ||
| mugwump | not these days | 02:00 | |
| I'm ambivalent to which is used... | |||
| mugwump & # meeting | |||
| putter | seems to work... hmm... & | ||
| autarch | if prelude isn't slower, it makes sense to write in the prelude for accessibility | 02:02 | |
| putter | I'll put them in Pugs::Internals, and they can be used or moved as desired. | 02:04 | |
| autrijus | as of today, prelude isn't slower anymore; migrating composite primitives and new primitives to Prelude.pm makes a lots of sense. | 02:08 | |
| svnbot6 | r5386, autrijus++ | * add `is builtin`, `is primitive`, `is safe` etc to | ||
| r5386, autrijus++ | new prelude functions. also added Prelude authoring | |||
| r5386, autrijus++ | guide at the top of Prelude.pm -- please help save | |||
| r5386, autrijus++ | the world and make PIR generation possible again. | |||
| autrijus | but please see the doc chunk in top of Prelude.pm, so we can keep PIR (and eventually P5) happy | ||
| I need to run to get my laptop repaired... bbl | 02:12 | ||
| will read the backlog on taxi... stevan++ putte++ mugwump++ geoffb++ gaal++ nothingmuch++ | 02:13 | ||
| svnbot6 | r5387, putter++ | Finished haskell versions of floor,ceiling,round,truncate. mugwump++. Given the new r5385 Prelude.pm versions, I dropped them in Pugs::Internals. These two need to be syncronized with Emit/PIR.hs. | ||
| putter | I just love pugs development... "I need to run to get my laptop repaired...[...] will read the backlog on taxi..." :) | 02:15 | |
| a slight cautionary note on Prelude.pm... compiling Pugs.Run seems to be taking rather longer than it used to. perhaps unrelated. or my imagination. | 02:18 | ||
| mugwump | 2min on my system | 02:19 | |
| which is a fairly long debug cycle... | |||
| svnbot6 | r5388, mugwump++ | Make otherwise condition a failure, not silently returning 0 ;) | 02:37 | |
| putter | Am I correct in my impression that, PIR aside, all prelude regressions are now fixed? | 02:46 | |
| s/prelude/compiled prelude/ | |||
| svnbot6 | r5389, putter++ | Fixed failing t/oo/class/basic.t test. | 03:11 | |
| putter | Err, in Parser.hs, why is "class" handled by both ruleClassDeclaration and ruleModuleDeclaration? | 03:12 | |
| attempting consolidation... | 03:20 | ||
| mugwump lols at "Please - listen to me. I'm an expert on IDS. I know whereof I speak." | 03:29 | ||
| putter | err, which IDS? | 03:39 | |
| autrijus | rehi lambdacamels | 03:49 | |
| putter: your impression agrees with mine. | |||
| I'm attempting to fix pir compilation now | 03:50 | ||
| putter | ok. I'm testing a merged ruleModuleDeclaration. | 03:59 | |
| Note to self: always have two projects going, so you can fiddle with one while the other compiles/tests. | 04:00 | ||
| svnbot6 | r5390, Stevan++ | Perl6-MetaModel | 04:10 | |
| r5390, Stevan++ | * adding support for "is ro" and "is rw" with regard to accessor/mutator generation | |||
| r5390, Stevan++ | NOTE: this does not affect the underlying container type of the attribute (not sure how that would be handled yet) | |||
| r5390, Stevan++ | * default is now 'ro' and not 'rw' | |||
| r5390, Stevan++ | * updated all the tests to reflect this new default | |||
| r5390, Stevan++ | * unified some the handling of meta-info for attributes | |||
| gaal_ | morning | 04:12 | |
| putter: Run.hs is slow to compile in the second pass now because it #includes the -CPugs output of the prelude | |||
| autrijus | but that tradeoff is quite worth it | 04:13 | |
| the only annoying thing is that it insist on rebuilding during "make ; make" | |||
| gaal_ | autrijus: i noticed that `pugs -CPugs Test.pm` emits stuff for the prelude too. i understand why it does that of course, but i'm not sure that it should. | 04:14 | |
| autrijus | gaal_: it should not | ||
| gaal_: look, the thing is in userDefined | |||
| the problem is on genprelude | 04:15 | ||
| open my $pc, "$Config{pugs} -CPugs $Config{inline} |" or die "open: $!"; | |||
| we want it to emit prelude code | |||
| whilst in all other cases | |||
| we do not. | |||
| gaal_ | autrijus, re `make;make` yes indeed, but unless we break #include "PreludePC" into separate .hs modules that'd be hard to fix | ||
| autrijus | so try to think something :) | ||
| maybe setting a special env during gengprelude | |||
| and activate bypass if -C and without that env? | 04:16 | ||
| am I making any sense to you? | |||
| gaal_ | yes, i understand this problem. | ||
| and your proposale | |||
| s/e$// | |||
| originally i wanted to add an undocumented comdline arg | |||
| since that would also allow us to avoid the hacky haskell munger filter | 04:17 | ||
| ie have another function in Pugs.Compile.Pugs that doesn't say MainCC etc. | 04:19 | ||
| excuse the typos this espresso is only 30% drunk | |||
|
04:20
gaal_ is now known as gaal
|
|||
| gaal | i was about to say that we can use kwid now in Prelude but i see you beat me to it. :) | 04:22 | |
| we should invent a trait for the prelude: is pure. it doesn't do anything (maybe it should be a documentation convention instead of a trait) -- except indicate that this builtin is implemented completely in the prelude. that way it'll be easier to separate pugs-specific implementation from things that should work in another implementation. this is.. not very urgent. :) | 04:25 | ||
| shouldn't the new Num:: functions go in a class instead of being declared fully-qualified? | 04:27 | ||
| autrijus | yeah | 04:35 | |
| please go ahead | |||
| ingy | hola | 04:37 | |
| putter notices the phrase "make;make" went by... if "unoptimized" gets lost in the process, the compile time on Pugs.Run would be unsurprising... | |||
| autarch | hi, ingy | 04:39 | |
| mugwump | gaal: the reason I did that, is that I had invocant count mismatch problems with: class Num { method floor { } } | ||
| gaal | putter no, the second pass Run is very long -- see PreludePC.hs | 04:40 | |
| mugwump - okay, i'll not ci now | |||
| ingy | autarch: hey, what you doing here? | ||
| mugwump | well, if you can get it to pass be my guest gaal ;) | ||
| gaal | have to leave for $work - have at it | ||
| :) | 04:41 | ||
| see you later. & | |||
| mugwump waves | |||
| putter | gaal: ah well. & | ||
| autarch | autarch: uh, talking about perl6, mostly | ||
| and pugs | |||
| putter dev cycle is now 5+ minutes. :( | 04:42 | ||
| ingy | converting DateTime? | ||
| autarch | yeah | ||
| not so much converting as rewriting, really | |||
| ingy | sounds like a barrel of fun | ||
| putter | hi, ingy | 04:43 | |
| ingy | fyi I think I have a totally workable wysiwyg solution for work | ||
| hi putter | |||
| how's the life of pugs? | |||
| putter: I'm thinking of rewriting Inline for Perl5 | 04:44 | ||
| are you still on that mailing list?> | |||
| mugwump | hey does anyone know if there has been a Ruling on tuple return types? eg sub divmod(Num, Num) returns (Int, Num) ? | 04:50 | |
| putter | ingy: having a number of smaller classes could be neat | 04:52 | |
| ingy: not on mailing-list, I don't think. | 05:03 | ||
| weary sigh. Is there some way to say "dont precompile the prelude"? | 05:05 | ||
| mugwump feels putter's pain | |||
| putter is having flashbacks of using punchcards | 05:07 | ||
| mugwump suggests changing the Prelude.pm to a stub that loads the real Prelude.pm at runtime for Prelude hacking | 05:08 | ||
| putter | good idea. tnx. almost time to put brain to bed. | 05:11 | |
| chromatic | Is it preflight time? | 05:16 | |
| autrijus | chromatic: no, not yet, I'm still fixing PIR | 05:20 | |
| svnbot6 | r5391, autrijus++ | * zeroth proofreading of ChangeLog | ||
| r5392, autrijus++ | * minor textual fix to hack.pod | |||
| r5393, autrijus++ | * rename "translate" to "codegen" | |||
| putter | perhaps not quite. -BPIR is broken. plus I fuzzily remember there were some other regressions | ||
| chromatic | Test::Builder has one weird one related to functions with the same name in different packages. | 05:21 | |
| autrijus | both exported? | 05:25 | |
| svnbot6 | r5394, autrijus++ | * in gen_prelude, use IPC::Open2 to avoid the dreaded whitespace bug. | ||
| chromatic | No, I don't believe so. | 05:26 | |
| autrijus | ok. which test is this? | ||
| chromatic | t/010_Test_Builder.t in ext/Test-Builder/ | ||
| Test exports plan, which the file uses, but the error message is of a parameter mismatch with Test::Builder::plan. | 05:27 | ||
| autrijus | ext/Test-Builder/lib/Test/Builder.pm: sub plan (Str ?$explanation, Int ?$tests) is export { | ||
| well. | |||
| chromatic | Weird, where'd that come from? | ||
| Wait, that's in the POD. | 05:28 | ||
| autrijus | oh. | ||
| chromatic | Can't fool me... for long! | ||
| autrijus | that is weirdo indeed. | 05:30 | |
| chromatic | Is there some namespace switching not happening? | ||
| Or did the export trait parsing change recently? | |||
| autrijus | no the export thing should work fine | ||
| $?PACKAGE says we're in main | |||
| so curiouser and curiouser | |||
| if you import TBP and not Test then it fails to find &plan | 05:31 | ||
| which is correct | |||
| chromatic | I just switched the order of the use statements to put use Test last and it worked for a while. | ||
| autrijus | define `for a while` | ||
| chromatic | Now it fails to find open(). | ||
| On line 46. | |||
| autrijus | hm. very weird. ok, i'll color it as a showstopper, but I need to work on pir first | 05:32 | |
| if you'd like to minimise it I'd be much grateful | |||
| chromatic | It's a showstopper for claiming full OO support, but so is the DESTROY thing still open. I don't mind if it doesn't block the next release. | ||
| autrijus | full OO support is for 6.28.0 and pends on metamodel incl. roles | 05:35 | |
| putter | I should have a slight oo improvement in as soon as a make test finishes. | ||
| chromatic | Alright, alright, I'll break stevan's stuff for a while then. | 05:36 | |
| autrijus | cool. I need to run for $work, bbiab | 05:37 | |
| putter | patch in. goodnight all. & | 05:47 | |
| svnbot6 | r5395, qtplatypus++ | Implementing trans | ||
| r5396, putter++ | Improved parsing of packages (modules, classes, etc). Some tests need to be un-todo-ed. | |||
| gaal | anyone else getting this error? : | 17:12 | |
| Error: No compatible subroutine found: "&Test::test_ends" | |||
| svnbot6 | r5435, fglock++ | implemented DateTime::Span | ||
| gaal | when using prove | ||
| nothingmuch | gaal: i need a new ISP.. got any reccomendations, for cheapo business accts? | ||
| static IP a must | |||
| dhcp a plus | |||
| gaal | nothinmuch, i like actcom, but well... | ||
| you know that | |||
| nothingmuch | they never replied to my inquiries | ||
| i tried to get a price quote 3 times | |||
| i'll try again | |||
| gaal | 1-800-300-123x1 | 17:13 | |
| nothingmuch | i'm getting sick of NV | ||
| the connection drops all the time | |||
| gaal | actually x3, you need customer service | ||
| NV used to be great, but then they went the way of the corporate. | |||
| nothingmuch | the problem is that i'm right in the middle | ||
| i'm a coporate client, supposedly | |||
| but I'm not big money | |||
| i get supposedly better service | 17:14 | ||
| but I get the butt end of that market share | |||
| so I actually get the worst service of all | |||
| while all I really wanted was reliability. | |||
| gaal | i'd try actcom. really, they are very clueful and nice. not the cheapest but not cutthroats either. | ||
| plus: haggle. | 17:15 | ||
| nothingmuch | i used to be with them | ||
| yeah | |||
| ook | |||
| gaal | so, you're not getting that error? | ||
| nothingmuch | wait, lemme backlog | ||
| no | |||
| but autrijus played with END a while ago | |||
| my pugs might be out of date | |||
| i've been trying to hack MMD mishmash | 17:16 | ||
| make DateTime pass it's test suite | |||
| the sort order of variadic arguments is bad | |||
| gaal | how much does a medium sized whiteboard cost? i want one for the hackathon | 17:17 | |
| nothingmuch | i'd say 100-200NIS | ||
| i'll chip in | |||
| gaal | i'll see if i can borrow one from work :) | ||
| nothingmuch | www.officedepot.co.il/(jthxkk204a1a...UBCATEGORY | 17:18 | |
| gaal | since i don't need it afterwards. | ||
| nothingmuch | 60x80cm is 120 NIS | 17:19 | |
| wait, there's one at 880 | |||
| 80 | |||
| these are cheap and big: www.officedepot.co.il/(jthxkk204a1a...?id=592014 | |||
| gaal | i don't want to buy one and throw it away. i'm in an anti-consumerism streak. | 17:20 | |
| nothingmuch | i'll find a use for it | ||
| i could use one | |||
| i have two in my cube at work | |||
| i could bring them too | |||
| but they're pretty small | |||
| gaal | i have a small one. it's funny, i asked for "a small one" and a few days later something A3-sized showed up. | 17:21 | |
| nothingmuch | is a3 small? | ||
| oh right, it is | |||
| gaal | kinda. twice A4. | ||
| nothingmuch | that's very small | ||
| Khisanth | gaal: just get a can of white paint :) | ||
| and a brush of course | |||
| nothingmuch | Khisanth: then you need to wait every time | 17:22 | |
| gaal | indeed. if everyone were that literal all the time we could do business. | ||
| Khisanth | not if you get the right paint :p | ||
| gaal | (please echo >> things you think i should prepare for a hackathon) & | 17:23 | |
| nothingmuch | food | ||
| wifi hub | |||
| (i can bring one) | |||
| gaal | gabor is bringing one, plus a spare laptop | 17:24 | |
| though i don't know how long he's staying | |||
| nothingmuch | ah, gabor is coming too?> | ||
| that's great | 17:25 | ||
| beer | |||
| coffee | |||
| gaal | i always have those things :) | ||
| nothingmuch | =) | ||
| Khisanth | hrm drunken coding | 17:26 | |
| gaal | i'm getting a hammock but i'm not sure i have a place to hang it up. | ||
| nothingmuch | Khisanth: no, beer is energizing | ||
| damn, my fix didn't change anything at all | |||
| gaal | beer + summer in tel-aviv == lazy | ||
| Khisanth | I would like to see you try that on the cop that pulls you over for drunk driving :) | ||
| nothingmuch | Khisanth: one beer is legal | 17:27 | |
| plus energizing does not mean "increases motoric skills" | |||
| it peps me up. | |||
| i can have 3-4 before i start being drowsy, and then I code badly | |||
| gaal | nm, i'm not sure there isn't also a blood level measure, in which case small folk may not be ok with one beer. | ||
| nothingmuch | gaal: i'm not really a small folk | 17:28 | |
| svnbot6 | r5436, gaal++ | move Num subs to their own class | ||
| r5437, fglock++ | added Date::Span class | |||
| nothingmuch | i look smaller than I am | ||
| nothingmuch probably weighs more than gaal | |||
| gaal | brain the size of a planet... | ||
| nothingmuch | but nevermind, i don't drive when drunk | ||
| autrijus: when you wake up, i have a weird patch I'd like to discuss... not committing | 17:29 | ||
| i'm off to get food | |||
| gaal | um, something wrong with namespaces again. all the rounders are not 'is builtin', but the test for them manages to call them without qualification. | 17:31 | |
| nothingmuch | eek | 17:32 | |
| gaal | ?eval class F { sub fff {say "hi"} } fff | ||
| ?eval class F { sub fff { "hi"} } fff | |||
| oh, not evalbot. darn. | |||
| but that says hi :( | 17:33 | ||
| nothingmuch: the test consolidation service should also store historical data and ideally allow some diffage. | |||
| nothingmuch | gaal: yeah | 17:34 | |
| there's a repo of results | |||
| i think they should be submitted with HTTP post | |||
| and arbitrary differ | |||
| gaal | the database will get big, but it's a great tool. | ||
| nothingmuch | like 'consolidate x and y and z' | ||
| i don't mind big, i have GB to spare | |||
| gaal | i told juerd i'd love to see it hosted on feather | ||
| nothingmuch | i'll hack it in catalyst next weekend | 17:35 | |
| gaal | noooo let's do it in p6! | ||
| nothingmuch | too slow. | ||
| this is heavy data munging | |||
| we need it responsive | |||
| nothingmuch thinks p6 is not ready for writing the tools yet | |||
| since the tools need to deal with special cases, and they need to be fast | |||
| and with the workaroundish nature of pugs around weird corner cases, i think we won't get very far | 17:36 | ||
| gaal | special cases? i dunno, i think on the language level pugs prolly has what we need for this, no? | ||
| nothingmuch | i don't know | ||
| gaal | speed, yeah, is a problem. | ||
| nothingmuch | these are hug structures... that's the main problem | 17:37 | |
| gaal | anyway, food | ||
| nothingmuch | and they need to be walked in <1s | ||
| yeah, me too | |||
| gaal | do everything in sqlite :) | ||
| svnbot6 | r5438, fglock++ | fixes 'density' parameter | 17:51 | |
| gaal | autrijus: regarding r5363, i didn't need to unlink the files - touching them workedforme. what's different with our setups? | 17:56 | |
| eeeep! /me ls -l's and looks at the size of PreludePC.hs and other -CPugs outputs | 18:01 | ||
| unspecced perl5 behavior: | 18:11 | ||
| perl -le '$x = require Carp; $y = require Carp; print $x; print $y' | |||
| $x is what do "Carp.pm" evaluates to, which happens to be 1. | 18:12 | ||
| guess what $y is :-) | |||
| answer: 1, apparently always. | |||
| regardless of $x, as long , of course, the first require was successful. | 18:13 | ||
| rafl_ | gaal: Well, why is that unexpected? if (exists $INC{$filename}) { return 1 if $INC{$filename}; ... } | ||
| gaal | where are you taking that code from? | ||
| oh, perlfunc does have it. interesting. | 18:14 | ||
| well, i wonder what p6 should do. | |||
| in the case of most class .pms, it's nice to return either the name of the class or a Class for $x: shouldn't $y be equal to $x in that case? | 18:16 | ||
| rafl_ | gaal: It's from perldoc -f require | ||
| gaal | but in that case they probably have to be weak references in %*INC | 18:17 | |
| rafl_: thanks - saw it after you pointed out the code. | |||
| but that means %*INC can no longer be a simple (name => path-or-hook) hash | 18:18 | ||
| Limbic_Region | salutations fibonaci | 18:19 | |
| nice handle | |||
| fibonaci | oh | 18:21 | |
|
18:21
fibonaci is now known as luqui
|
|||
| luqui | thanks | 18:21 | |
| Limbic_Region | heh | ||
| Limbic_Region had no idea | |||
| luqui | When I was obsessed with breaking into the school computers, one of my logins was fibonazi | 18:22 | |
| nothingmuch | luqui: ping | ||
| luqui | ping me and then leave, eh? | 18:23 | |
| nothingmuch | back | ||
| Limbic_Region wonders how old luqui is | |||
| nothingmuch | Limbic_Region: around my age ;-) | ||
| stevan | Limbic_Region: emotionally or physically :P | ||
| nothingmuch | luqui: i wanted to discuss pil->p5 | ||
| Limbic_Region | when I was breaking into my school's computers - I didn't have a login - I used the teachers accounts | ||
| luqui | ahh yes that old thing | ||
| my hard drive died... again | 18:24 | ||
| nothingmuch | oh crap | ||
| i hate when HDs die | |||
| stevan | luqui: that is no excuse | ||
| nothingmuch | it's the worst kind of death | ||
| stevan | you still have your punchcards | ||
| luqui | heh | ||
| nothingmuch | Limbic_Region: now make a guess | ||
| Limbic_Region | circa 20 | 18:25 | |
| stevan | BINGO! | ||
| luqui | well, we're only approximately exactly 20 | ||
| Limbic_Region | in my case - I had a guidance councelor who didn't believe I could break in and in the other case a principal that was hoping I could since he had gotten locked out | 18:26 | |
| luqui | y tu limbic? | ||
| Limbic_Region | venty-ocho | ||
| so I had permission ;-) | |||
| luqui | that's no fun | ||
| Limbic_Region is celebrating his 3 year anniversary with Perl today as a matter of fact | |||
| luqui | cool | 18:27 | |
| That's about how long I've been using perl too | |||
| ... no, I guess it's more like 5 years | |||
| wow | |||
| time flies when you're programming perl | |||
| Limbic_Region | yep | ||
| nothingmuch | perl or perlmonks? | ||
| Limbic_Region | both | 18:28 | |
| got my account same day as I discovered Perl | |||
| nothingmuch | i'm nearing my 3 year perlmonks ann | ||
| Limbic_Region | well - that's not entirely true - I knew about Perl from afar but that's the day I decided to learn about it | ||
| nothingmuch | but it's more like 3.5 of perl | ||
| Limbic_Region | there has been no single thing that has consumed more of my time, thought, and energy | 18:29 | |
| luqui | and yet, only three years | ||
| Limbic_Region | err - in the same ratio I mean | 18:30 | |
| Limbic_Region is sure he has spent more time masturbating then hacking perl but not in that time window | |||
| luqui | haha | 18:31 | |
| Limbic_Region | oh - this channel is logged isn't it | ||
| nothingmuch | if only you'd have known perl in your youth? | ||
| you prefix messages with [off] | |||
| luqui | vim masturbate.pl | ||
| Limbic_Region | nothingmuch - I wouldn't have such hairy knuckles | ||
| nothingmuch | what do you get when you play with fire? | ||
| Limbic_Region | in any case - I said thanks at the Monastery - but let me say thanks again here | ||
| here's hoping p6 consumes more of my time in the next 3 years than p5 did in the previous | 18:32 | ||
| nothingmuch | call me dumb, but I hope it takes up less time, with more yield | 18:33 | |
| Limbic_Region | ok - you're dumb | ||
| Limbic_Region was looking at it from the perspective of having that much free time in the next 3 years | 18:34 | ||
| luqui | I hope it takes more time, with a greater yield ratio | ||
| Limbic_Region | I was single for 2 of those 3 years | ||
| luqui | the former or latter two? | ||
| Limbic_Region | the former | 18:35 | |
| luqui | oh... | ||
| you better dump whoever it is | |||
| nothingmuch | luqui: too late for him now | ||
| Limbic_Region | heh - my wife probably would have to take issue with that | ||
| luqui | dump, divorce, same difference | ||
| nothingmuch wants to learn rubenstein's revenge | 18:36 | ||
| luqui | ? | ||
| Limbic_Region | perlbot google "rubenstein's revenge" | ||
| grrr - that feature must have got lost when the HD got dismantled | 18:37 | ||
| luqui | oh, it's a juggling thingy? | ||
| nothingmuch | yep | ||
| luqui | nothingmuch juggles? | ||
| nothingmuch | some | 18:38 | |
| Limbic_Region juggles too but only the very basics | |||
| luqui was almost convinced after that yapc presentation | |||
| gaal | nothingmuch: bring juggling balls to hackathon plz | ||
| Limbic_Region | I ran a 10K race once with a guy who juggled the whole race | ||
| nothingmuch | gaal: we have millions at work | ||
| Limbic_Region: i once walked 10k | 18:39 | ||
| nobody was juggling, but I made it | |||
| gaal | lol | ||
| luqui | I once thought about walking 10k | ||
| but I didn't have a laptop at the time, so it was out of the question | |||
| ;-) | 18:40 | ||
| nothingmuch | addict | ||
| gaal rows five miles when not sucking | |||
| luqui | uh | ||
| is there a way to retroactively [off] a comment? | |||
| nothingmuch | what comment? | ||
| luqui | gaal's | 18:41 | |
| :-) | |||
| gaal | i think the channel logger is down anyway. | ||
| nothingmuch | ah | ||
| nothingmuch bikes 20KM when there's enough daylight | |||
| gaal | actually, it's back up. what do you know. | ||
| "Parse error in pattern" is a terrible error message. | 18:44 | ||
| Limbic_Region | gaal - no 0x1 is a terrible error message | 18:45 | |
| gaal | i like haskell better than i like make, so my expectations are higher. | ||
| Limbic_Region | *shrug* - I need to take a crash course in brain surgery err um p6 OO | 18:46 | |
| gaal | l~r: you should try examples/obfu/l33t.p6 | ||
| that has useful error messages. | |||
| luqui is teaching one of those... | 18:48 | ||
| luqui just isn't sure when | |||
| svnbot6 | r5439, fglock++ | added 'density' accessor | 19:08 | |
| luqui | ooh | 19:16 | |
| Larry's latest message on p6l is... | 19:17 | ||
| brain-exploding | |||
| or at least tangling | |||
| geoffb | link? | 19:18 | |
| luqui | www.nntp.perl.org/group/perl.perl6....uage/22220 | 19:19 | |
| geoffb | thx | ||
| pdcawley thought that Smalltalk rather neatly dodged the infinite Class/Meta/MetaMeta/MetaMetaMeta/... regress rather neatly. | 19:21 | ||
| svnbot6 | r5440, fglock++ | 'density' fixes | ||
| r5441, iblech++ | * Added a new test for "class MyValueType is value {...}": t/oo/value_types.t | |||
| r5441, iblech++ | * Usual svn props. | |||
| pdcawley | s/rather neatly// | ||
| either will do. | |||
| luqui | how did it do it? | ||
| pdcawley | Feck! You don't expect me to remember do you? | ||
| luqui | well, you said rather neatly | 19:22 | |
| ... twice | |||
| pdcawley | But MetaClass isa Class... | ||
| luqui | so I just ass-u-me-d | ||
| pdcawley | I remember reading the purple book and thinking "that makes sense" and then forgetting about it. | 19:23 | |
| luqui | heh | ||
| pdcawley | I think it was the purple book anyway. | ||
| luqui might be interested in learning some smalltalk | |||
| then again... | |||
| luqui doesn't really care about metamodels all that much | |||
| pdcawley | If I remember rightly, the responsibilities worked out that the class was responsible for holding the instance methods, and the metaclass was responsible for holding the class methods. | ||
| integral | hmm, what's the haskell equiv for join(", ", @list) ? | 19:24 | |
| pdcawley | Hang on, I'll fire up a Squeak image and have a look. | ||
| luqui wishes he knew | |||
| integral | hmm, the tour of the prelude implements unwords in terms on foldr1 + some addSpace func | 19:26 | |
| pdcawley | MetaClass isa ClassDescription isa Behaviour isa Object | 19:27 | |
| Class isa ClassDescription | |||
| nothingmuch | stevan says: smalltalk metamodel is teh suxx0r | 19:28 | |
| pdcawley | Okay. And the roxxor would be? | 19:29 | |
| luqui | Perl6::Metamodel? :-) | 19:33 | |
| pdcawley | Heh. | ||
| luqui | Well, Perl5's metamodel is pretty damn good | 19:34 | |
| for not existing | |||
| it's just the attribute thing that needs work | |||
| rafl_ | I know that I asked this question already several times, but I didn't get an answer: Why are the p5 parts of pugs installed as source package (including Makefile.PL, MANIFEST, t/, etc.)? | 19:37 | |
| luqui | you mean when you do make install? | 19:38 | |
| svnbot6 | r5442, iblech++ | t/oo/inheritance.t -- Added tests, stolen from Larry. | ||
| r5443, iblech++ | * Pugs.Parser -- Made "my Foo $foo .= new(...)" parse and work. | 19:40 | ||
| r5443, iblech++ | * t/oo/construction.t -- Added a test for that. | |||
| luqui heads home | 19:42 | ||
| svnbot6 | r5444, bsmith++ | * Moved version variables from Pugs.Help to Pugs.Version. | 19:51 | |
| r5444, bsmith++ | * Pugs.Help now import Pugs.CodeGen so that it can produce a correct list of | |||
| r5444, bsmith++ | backends in the -h message. | |||
| r5444, bsmith++ | * Fixed script/pugscc to use the Ghc backend rather than the Haskell backend | |||
| r5444, bsmith++ | for --haskell and --ghc. | |||
| r5445, iblech++ | util/gen_prelude.pl -- Fixed Haddock-confusing comment. | 20:03 | ||
| rafl_ | integral: Maybe you can answer my question? | 20:09 | |
| integral | hmm, perhaps | 20:12 | |
| what do you mean by "installed as source package"? | |||
| rafl? | 20:13 | ||
| rafl_ | integral: Things like /usr/share/perl5/Code-Perl/Makefile.PL get installed. | 20:14 | |
| svnbot6 | r5446, putter++ | Commented out (failing) test. $larry yesterday said Foo.isa(Class) is false. | ||
| r5447, iblech++ | Pugs.Help -- Minor cosmetical fix: Added ''s around the "while" thing | |||
| r5447, iblech++ | (consistency: There're ''s around "use module", too) and fixed a typo. | |||
| integral | rafl_: ah, that sounds very much a bug :-) | ||
| rafl_ | integral: Can you reproduce it? | 20:15 | |
| integral | It should be recursing into the Code-Perl package and running that Makefile's install | ||
| I don't install pugs... and I'm scared of makemaker... this really isn't my area | |||
| rafl_ | integral: You can do make install DESTDIR=/tmp/foo or something. So you can remove it quite easily. | 20:16 | |
| integral | sure, but there's bugs in the install process ;-) | ||
| Aankhen`` | I'm getting $INSTDIR/lib/Code-Perl/Makefile.PL | ||
| Did you install under /usr/share/perl5/? | |||
| integral will do a quick build before poking | 20:17 | ||
| rafl_ | I run perl Makefile.PL INSTALLDIRS=vendor. That should put the p5 stuff into /usr/{lib,share}/perl5/ | ||
| I'll be right back. | 20:18 | ||
| Aankhen`` | OK. | ||
| afields | Working on my Perl 6 sets pod | 20:19 | |
| Aankhen`` | Hmm. | 20:20 | |
| afields | What's a good block of available punctuation, can { } be overloaded anymore? | ||
| Aankhen`` | Basically, everything from lib/ appears to be copied to /usr/{lib,share}/perl5/ or whatever. | ||
| rafl_ | Aankhen``: So that's seriously broken, isn't it? | 20:22 | |
| Aankhen`` nods. | |||
| Aankhen`` thinks. | 20:23 | ||
| rafl_ | Will you fix it? | ||
| Aankhen`` | Isn't lib/* copied by default in a regular distribution? | ||
| I am not really sure how to fix it. | |||
| integral | the .pm files should get copied into blib first, and then the blib installed | ||
| rafl_ | OK, so I'll give a try in about an hour. | 20:24 | |
| Aankhen`` | lib/* appears to be copied wholesale to blib/. | 20:26 | |
| blib/lib/, actually. | |||
| afields | Which is most likely to please Perl 6 authors: a) {.} {..} b) (.) (..) c) <.> <..> or d) none of the above; for Perl 6 grammar (To mark set bounds/intervals/continuences)? | 20:28 | |
| Aankhen`` | I think d)... | 20:29 | |
| svnbot6 | r5448, fglock++ | implemented more methods in Set::Infinite | ||
| r5449, fglock++ | docs update | |||
| afields | Aankhen``: How are sets approached from a Perl 6 perspective? | ||
| Aankhen`` | The options you listed are very basic symbols; redefining their meanings would be quite catastrophic... :-\ | ||
| Hmm... if you have a copy of the Pugs source handy, you could take a look at ext/Set/lib/Set.pm. | 20:30 | ||
| (or svn.perl.org/perl6/pugs/trunk/ext/S...ib/Set.pm) | 20:31 | ||
| afields | i"m thinking it might be advantageous to place meta-data about arrays (sets) at any given level of a multi-level structure | ||
| Aankhen`` | my $set = set 23, 42, $some_object; | ||
| afields | so should that be done with more syntax or a more procedural manner working on set objects | 20:32 | |
| Aankhen`` | I suggest looking at the work already done first -- it might help you decide. | 20:33 | |
| afields | OK | ||
| I'm planning on looking at pugs | |||
| just haven't got arround to reading all the source et | |||
| Aankhen`` | You don't need to look at the Pugs source | 20:34 | |
| . | |||
| I am referring to the `Set` module in Perl 6, which is shipped with Pugs. | |||
| The Perl 6 `Set` module, even. :-P | |||
| afields | OK, so is this not going to somehow make it into base language | 20:35 | |
| sets are just a special case type of an array? | |||
| Aankhen`` | I dunno about that, I haven't looked at the implementation as such. | ||
| afields | reason I ask is what if you want to deal with a very large set which can be partially specified ( 1 2 3 <..> 65535 ) for instance | 20:36 | |
| dudley | is whitespace significant between a sub name and the opening paren of its parameter list? | 20:40 | |
| i.e. is: | |||
| sub foo ($bar) {...} | |||
| equivalent to | 20:41 | ||
| sub foo($bar) {...} | |||
| Aankhen`` | Yes. | 20:43 | |
| Khisanth | afields: more like hashes than arrays | 20:48 | |
| afields | my @a = ( [1,2,<..>10], [3,4,<..>,7], { a => [9,10], b => [-$a,<..>$a] } ); | 20:50 | |
| my @set rather | |||
| Aankhen`` | rafl_ >> You could try something like this in Makefile.PL: `libs(map fixpaths($_), grep { -f "$_/Makefile.PL" && not -l "$_/Makefile.PL" } glob("lib/*"));`. | ||
| That'd miss out `pugs.pm` and `pugs.pod`, I think, but it's a start. :-) | |||
| Anyway. | 20:51 | ||
| Aankhen`` goes to sleep. | |||
| G'night. | |||
| afields | the idea is not to actually store numbers between -$a and $a, but simply to store the meta-data of the set that the range of values will return numbers between the two bounds of the interval | 20:52 | |
| and to do this using regular arrays | |||
| I cover this in section: Storage vs. Usage | |||
| fglock | afields: see also the 'Span' class | ||
| afields | fglock: you are doing set work I see? | ||
| fglock | afields: yes | 20:53 | |
| afields | fglock: how much is done on things like continuances and incompletely specified sets, infinite sets? | ||
| fglock | that's Set::Infinite - it will handle those | 20:55 | |
| Khisanth | there is a Set::Infinite isn't there? :) | ||
| afields | so each of these is a class which returns basically a blessed array? | ||
| fglock | afields: no, it returns an iterator | 20:56 | |
| Khisanth | you aren't suppose to care about implementation :p | ||
| afields | Khisanth: well I might have to because I want to see the regex engine talk objects | ||
| and sets | |||
| nothingmuch | moose! | ||
| fglock | it should return a Lazy List, but I think these are not fully implemented yet | ||
| sili | that sounds like fun | 20:57 | |
| afields | can't we do this in the base language, please? | ||
| not the grungy stuff | |||
| Khisanth | hmm both pp.h and chardefs.h has RETURN ... I don't think this will work out well | ||
| afields | just the primitives of set operations | ||
| nothingmuch wonders if you're allowed to talk back to schwern about quality stuff | |||
| talk back == disagree | |||
| geoffb | give 'im hell, nothingmuch | 20:59 | |
| fglock | afields: the base language handles 1 .. 10, but it has some problems with 1 .. Inf | ||
| geoffb | dammit, why does ambiguous tab completion ALWAYS choose the wrong one? | ||
| afields | fglock: exactly, why even both dealing with infinity until it is actually used | ||
| why even store 1..10 | 21:00 | ||
| nothingmuch | heh | ||
| afields | store 1, to, 10 ;) | ||
| fglock | afields: that's how it works, actually | 21:01 | |
| but the API makes it look like a list | |||
| afields | fglock: ok, so then can I do 1 .. 10 in Perl 6 or 32 .. Inf and then find the compliment of the two arrays? | 21:02 | |
| stevan | nothingmuch: I didnt say the smalltalk metamodel sucked | ||
| fglock | yes - you can do that using the Span module already | ||
| nothingmuch | stevan: yes you did ;-) | ||
| stevan | I said it was more complex then it needed to be | ||
| nothingmuch | ah | ||
| stevan | in a drunken fit maybe | ||
| but not when I was sober | 21:03 | ||
| nothingmuch | i parse that as "sucked badly" | ||
| stevan | nah | ||
| nothingmuch | even if you said that verbatim | ||
| i don't like complexity in something so atomic | |||
| stevan | just more "academic" then "practical" | ||
| nothingmuch | an ideal metamodel is very practical because it's so academic it's perfect | ||
| stevan | the perfect metamodel: available in proof form only | 21:04 | |
| afields | fglock: ok, that's good, but why not just make arrays that 2 bytes smarter to do it there instead of delegating it to a special class? I mean arguably you could omit the combinatoric logic in the base language and implement that as a module as long as arrays could better represent edge-case sets | ||
| nothingmuch goes to have a cigarette | |||
| Khisanth shoots nothingmuch | |||
| nothingmuch | Khisanth: eh? | 21:05 | |
| stevan throws luqui inbetween nothingmuch and bullet | |||
| Khisanth | luqui is bulletproof? | ||
| stevan | we shall soon find out | 21:06 | |
| nothingmuch | just a little bit longer | ||
| stevan | bah, he is off channel,... even worse | ||
| fglock | afields: I think the language will be able to handle that, once everything is in place. Actually, it may end up using a module transparently (I guess that's what "Prelude" is for) | 21:07 | |
| nothingmuch | Khisanth: are you going to explain or can I go? | ||
| afields | fglock: so are you interested in more wacky suggestions on what would be nice to see for Perl 6 and sets? | ||
| I like the fact that Unicode operators will work | 21:08 | ||
| fglock | sure - please mail me [email@hidden.address] - I've got to leave now :( | 21:09 | |
| afields | ok, thanks, good timing =) | ||
| svnbot6 | r5450, bsmith++ | util/importgraph.pl - colourise nodes by import/export lists and 'qualified' | ||
| r5450, bsmith++ | src/Pugs/Bind.hs - added export list | |||
| Khisanth | nothingmuch: just the smoking :) | 21:14 | |
| svnbot6 | r5451, putter++ | Commented out the envID field of Env. With it, my $x = sub{}; $x =:= $x was false, due to a single (prune-able?) mismatch. | 21:18 | |
| nothingmuch | Khisanth: you can forgive me, I don't do it often | 21:19 | |
| svnbot6 | r5452, putter++ | "Fixed" t/var/symbolic_deref.t. Replaced a random tested function with another currently working. And temporarily replaced =:= with ~~, as =:= on subs is still broken. | 21:35 | |
| r5453, putter++ | Added failing tests for =:= on subs. | |||
| nothingmuch | is anyone here familiar with pugs' current MMD dispatching? | 21:44 | |
| geoffb | OK, WTF?!? | 21:47 | |
| pugs> my $i; while ++$i < 2 {next; say "Saw $i"} | |||
| Saw 2 | |||
| nothingmuch | ooh | ||
| geoffb | Ah, I see the blind spot -- it looks like all tests for next use a for loop | 21:51 | |
| svnbot6 | r5454, putter++ | Added "&main::" where needed in caller.t. | ||
| nothingmuch | geoffb: want to try to pair through it? | 21:55 | |
| geoffb | Sure, what did you have in mind? | ||
| nothingmuch | do you know how Eval.hs applies loops? | 21:56 | |
| since every block is a closure it's really just repeated calls on the block | |||
| each call get's a new dynamic scope | |||
| geoffb | OK | ||
| nothingmuch | with the next subroutine containing a closure that escapes | ||
| (same applies for return, redo, etc) | 21:57 | ||
| svnbot6 | r5455, putter++ | examples.t reverse.p6 was failing because an output line was added, without updating the tested output/ file. | ||
| nothingmuch | line 444 | ||
| geoffb | LOL | 21:58 | |
| nothingmuch | LOL? | ||
| geoffb | "probably needs work". | ||
| Uh, yeah, definitely | |||
| nothingmuch | heh =) | ||
| okay | 22:00 | ||
| cond is evaluated in Bool context | |||
| vb is a cast from perl6's val that is a bool, into a boolean | |||
| (haskell boolean) | 22:01 | ||
| f is the transformer (id for while, not for until) | |||
| if (f vb) is true, we reapply, otherwise we return the result of the conditional (always false) | |||
| i forget the details of fix, but it builds and env | 22:02 | ||
| geoffb doing too much window switching . . . rearranging windows . . . better | |||
| nothingmuch | next isn't even generated... that's our problem =) | 22:03 | |
| geoffb | OK, so it basically comes down to transferring some magic from the block starting at 368 (for) and/or 400 (loop) | 22:04 | |
| nothingmuch | yeah, pretty much. | ||
| i think while is simpler though. | 22:05 | ||
| geoffb doing his best to keep up with several people talking to me at once | |||
| nothingmuch | since there is no iterator to skip - just redo the loop, but with the conditional | ||
| geoffb | yay, others have gone AFK, now back to trying to grok the code | ||
| nothingmuch | heh | 22:06 | |
| okay, i think i've got it | 22:10 | ||
| i just have to remove a bajillion traces | |||
| i was debugging MMD =( | |||
| geoffb | Oy. | 22:14 | |
| Either A) I'm not ready for this, or B) the different looping constructs have arbitrary differences that needn't be there, or C) both. | 22:15 | ||
| Right now I'm leaning towards A or C. | |||
| nothingmuch | hmm | ||
| actually the loop application code is pretty tight | |||
| for, loop and while are very different =) | 22:16 | ||
| geoffb | Well, for example -- what is the diff. between genSymCC and genSymPrim? | ||
| nothingmuch | genSymPrim takes a function, and makes a Prim out of it, and creates a symbol around that (a sub) | ||
| genSymCC does - i dunno | |||
| let's see? | |||
| geoffb | I mean, my auto-acronym-expander thinks CC is "caller continuation", but . . . | 22:17 | |
| OK | |||
| nothingmuch | hmm | ||
| yeah, i think I see | |||
| aha! | 22:21 | ||
| enterWhile is in Monads.hs | |||
| it defines next | |||
| and last | |||
| hmm. | 22:22 | ||
| pasteling | "nothingmuch" at 212.143.91.217 pasted "some traces of geoffb's while bug" (8 lines, 168B) at sial.org/pbot/11694 | 22:23 | |
| nothingmuch | there's our bug | 22:24 | |
| after next is invoked | |||
| the execution continues | |||
| in fact, next recurses into the while loop | |||
| let's try to make it worse: | |||
| pasteling | "nothingmuch" at 212.143.91.217 pasted "just like I pictured it" (10 lines, 217B) at sial.org/pbot/11695 | 22:25 | |
| nothingmuch | =D | ||
| geoffb | yep, there you go. | ||
| What do you do to get those traces? | 22:26 | ||
| Or did you just instrument the code? | |||
| pasteling | "nothingmuch" at 212.143.91.217 pasted "code with traces" (12 lines, 593B) at sial.org/pbot/11696 | ||
| nothingmuch | okay, we want to implement next with genSymCC | 22:27 | |
| but with a catch - it just restarts the whole while loop sequence | |||
| without losing the env | |||
| geoffb | nod | 22:28 | |
| nothingmuch | okay, let's have a crack at it | ||
| geoffb | OK, let me just see if I understand here: | 22:29 | |
| redo needs to recurse, so that should use genSymPrim. last and next do not, so they need genSymCC. | |||
| Am I following correctly? | |||
| nothingmuch | actually I think redo is also broken | 22:31 | |
| it needs to abort the current block | |||
| they are all like goto | |||
| geoffb | OK, granted I don't know Haskell all that well (I'm basically reading it like an Italian reading Spanish), but it looks like the redo concept is "tail-recurse the loop block" | 22:32 | |
| nothingmuch | it is | 22:33 | |
| and next is the same | |||
| except it tail recurses the conditional and the body | |||
| and last is just go back to your caller | |||
| geoffb | nodnod | ||
| nothingmuch | ook, the right man for the job just left =( | 22:35 | |
| geoffb | bleah | ||
| cognominal | The 'Autrijus' method does not exist in the 'inc' path! # Autrijus manages even to mess perl5 :) | 22:36 | |
| nothingmuch | i hope autrijus wakes up soon | ||
| chromatic | Is Pugs.Embed.Parrot a deprecated module? | ||
| nothingmuch | cognominal: ? | ||
| cognominal | I got this message when trhing to install PAR with GnuPG support | 22:37 | |
| no big deal | |||
| putter | #haskell | 22:38 | |
| nothingmuch | #haskell! | ||
| geoffb | OK, may have to add another channel to the tabs. Is the proper #haskell on freenode, or some other net? | 22:39 | |
| nothingmuch | freenode | ||
| putter | oops:/ | 22:41 | |
| nothingmuch | putter: have you got cont fu? | ||
| chromatic | Ahh, it's src/Pugs/Embed/Parrot.hsc | 22:42 | |
| pasteling | "chromatic" at 63.105.17.30 pasted "Dump PIR Output from Embedded Parrot (maybe more valuable in codegen; still somewhat valuable)" (31 lines, 1.1K) at sial.org/pbot/11698 | 22:45 | |
| geoffb | OK, nm, I need a mental break, and it sounds like you've hit a wall too -- nothingmuch++ for diagnosis -- so I'm going AFK for a few. When I get back, I will roll a virtual die and either: 1) learn more haskell, 2) write tests for this bug, 3) work around and get more Perl 6 porting done, 4) take the night off and snack on Aussie Bites. :-) | 22:51 | |
| nothingmuch | tests tests tests | ||
| mui good | |||
| i'm sort of watching tv (i'm a sucker for anthropology shows) so i'm losing concentration | 22:52 | ||
| but I'll try to figure out how you can make a continuation that *isn't* caller CC | |||
| geoffb | .oO( Aussie Bites! Now made from real Australians! ) |
||
| (y) | |||
| nothingmuch | reminds me of a nice calvin & hobbes | 22:53 | |
| geoffb | There are bad C&B? | ||
| nothingmuch | "Mom, are hambuger's made out of people from hamburg?" | ||
| geoffb | :-) | ||
| nothingmuch | "No calvin, don't be gross" | ||
| "it's ground beef" | |||
| "you mean i'm eating a cow?!" | |||
| "i don't think I can finish this" | |||
| geoffb | LOL | ||
| nothingmuch | ofcourse, in the first cell he is full of apetite | ||
| and in the last one he looks like in one of the oatmeal scenes | 22:54 | ||
| geoffb | :-)_ | ||
| My dad tells me that when he saw the C&B where Calvin's on the bus imagining piloting a bomber and bombing the frack out of his school, Dad thought "Wow, I've had EXACTLY the same daydream." | 22:55 | ||
| nothingmuch | heh | ||
| i like the dinosaur ones the best | |||
| geoffb | My fav have to be the snowman grotesques | ||
| nothingmuch | oh, they're wonderful | 22:56 | |
| geoffb | OK, really AFK now | ||
| nothingmuch | ciao! | ||
| nothingmuch makes a wild guess | 23:17 | ||
| nothingmuch smiles | 23:20 | ||
| putter | nothingmuch: re cont fu, mediocre. something in particular? | 23:21 | |
| nothingmuch | &next is broken in while | ||
| but i've improvised a fix | |||
| genSymPrim "&next" (const $ action >>= \res -> esc res) $ \symNext -> do | |||
| -- genSymPrim "&next" (const action) $ \symNext -> do | |||
| commented is old | |||
| it would call the next iteration of the while, complete it | 23:22 | ||
| and then go back and resume the statement after the call to next | |||
| err, prepend that with callCC $ \esc -> do | |||
| putter | looking... | 23:27 | |
| nothingmuch | altering monads takes so long to recompile | 23:31 | |
| mugwump__ | yeah, they have to go through customs | 23:32 | |
| mugwump__ hmms at his nick | |||
| nothingmuch | mugwump__: ? | 23:33 | |
| what customs do you speak of? | |||
| mugwump__ | you know, security checks and getting frisked down. make sure they're not terrorists. | ||
| nothingmuch | who has to go through customs? | 23:34 | |
| mugwump__ | the monads | ||
| nothingmuch | ah | ||
| well, yes, no one understands them, they raise suspicion | |||
| mugwump__ | how else can ghc be sure they have no side effects? | ||
| nothingmuch | arrows, OTOH, are even less understood, and they look pointy | ||
| putter | eeep. three implementations of next/last/redo in two files. lossage is to be expected. are the semantics such that we could rip out all three and replace them with something clean? | 23:35 | |
|
23:35
mugwump__ is now known as mugwump
|
|||
| nothingmuch | putter: no | 23:35 | |
| putter | :( | ||
| nothingmuch | they are different for every type of loop | ||
| they're pretty dense | 23:36 | ||
| so I don't think it's bad | |||
| well, supposedly yes | |||
| stevan | nothingmuch: *cough* | 23:42 | |
| svnbot6 | r5456, nothingmuch++ | Fix geoffb++'s next in while bug... next is now implemented with | ||
| r5456, nothingmuch++ | continuations. redo is still needed, as are tests. | |||
| nothingmuch | shutup, i'm watching TY | ||
| TV | |||
| stevan | the opiate of the masses | ||
| nothingmuch | there's a documentary on the metamorphisis of islamic states in the 20th century | ||
| mugwump | the drug of a nation | ||
| stevan | you brain will leak out your ears | ||
| nothingmuch | i don't know enough about that | ||
| and i'm doing haskell at the same time | 23:43 | ||
| stevan | nothingmuch: how can you not, they are your neighbors | ||
| nothingmuch | stevan: they don't teach us about anybody but the jews in history | ||
| mugwump cues "Couch Potato" by Weird Al Yankovic | |||
| nothingmuch | or the people who did crap to the jews | ||
| stevan | and muslims are not included in that?? | ||
| nothingmuch | well, it's only the crap they did | ||
| geoffb gets BAK to see nothingmuch has fixed my bug -- thanks, nothingmuch++ ! | 23:44 | ||
| nothingmuch | like: | ||
| geoffb: wait, there's more | |||
| my $i; while ++$i < 5 {say "moose"; if (++$i == 2){ redo } else { say "no redo" };; say "Saw $i"} | |||
| pasteling | "nothingmuch" at 212.143.91.217 pasted "the output of that loop" (8 lines, 51B) at sial.org/pbot/11699 | 23:45 | |
| nothingmuch | as you can see in the nopaste, at some point there is "Say 6", which is not directly preceded by "no redo" | ||
| which is crap | |||
| we need callCC for redo as well | |||
| geoffb | nodnod | ||
| nothingmuch | i have no idea how this is working in the other impls | ||
| can someone right extensive tests for redo/next under for, loop and while? | 23:46 | ||
| geoffb | Well, a grep for next earlier showed that it is very rarely used outside of its own tests. Which are probably fairly bogus | ||
| nothingmuch | okay | ||
| so let's crak on that a while | |||
| geoffb | (used in t/*/* I mean) | ||
| nothingmuch | i'll commit while next/redo with the cases we have | 23:47 | |
| and start on for | |||
| you do loop, fair? | |||
| geoffb | nodnod | ||
| lemme pull and build, and then I'll start on the tests while that goes | 23:48 | ||
| nothingmuch | Control.Monads is a slow build | ||
| geoffb | Have you committed yet? | ||
| putter | nothingmuch: looks plausible... vaguely... I think... ;) | 23:49 | |
| Now I can remove the "# when next; works, change this to..." line from the Prelude.pm, or perhaps I'll wait a bit. | 23:50 | ||
| nothingmuch | =) | ||
| putter goes off to read Sxx on redo... | 23:51 | ||
| geoffb | Whee, dinner has arrived. | 23:52 | |
| (better half)++ | |||
| AFK again | |||
| nothingmuch | ciao | 23:56 | |