|
svk sy -s 12103 //mirror/pugs | paste: sial.org/pbot/perl6 | pugs.blogs.com | pugscode.org | pugs.kwiki.org | www.treehugger.com/files/th_images/paradigm.jpg Set by audreyt on 11 August 2006. |
|||
| froh-doh | <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"> should do without intervention on the web server | 00:00 | |
|
00:00
fglock left,
DaGo joined
|
|||
| dduncan | that has to be issued BY the web server | 00:00 | |
| froh-doh | no, the META is a tag INSIDE the web page | ||
| dduncan | and it is better to do it in the HTTP headers if possible, though that's a reasonable fallback if you can't control the HTTP headers | ||
| froh-doh | yes, I'd classify it as a "workaround" :) | 00:01 | |
| dduncan | I wonder if there's a .htaccess directive for this ... putting in actual HTTP headers for static documents | ||
| nevermind | 00:02 | ||
| that document says you can | |||
| the AddType directive | |||
| aufrank | hey folks | 00:04 | |
| marksto1 | Hello, aufrank. | ||
|
00:04
marksto1 is now known as markstos_
|
|||
| froh-doh | dduncan: it seems that it should work inside .htaccess as well: httpd.apache.org/docs/2.0/howto/htaccess.html | 00:05 | |
| dduncan | well, good luck to you all, and now, back to $job for me ... & | 00:08 | |
|
00:08
dduncan left
|
|||
| aufrank | I'm about to report a pugs build bug | 00:09 | |
| this is on osx 10.4 with ghc 6.4.2 | |||
| during make unoptimized | |||
| pasteling | "aufrank" at 65.37.87.113 pasted "pugs build error during make unoptimized" (17 lines, 2.1K) at sial.org/pbot/18934 | 00:10 | |
| aufrank | it seems like its looking for an installed libparrot, but I have never installed parrot | 00:17 | |
|
00:25
kanru joined
00:27
diakopter_ joined
00:33
miyagawa joined
00:35
diakopter joined
00:43
HXanadu joined
|
|||
| svnbot6 | r12141 | lwall++ | Some quote tests obsolete with new q[[...]] rules. | 00:56 | |
| r12142 | lwall++ | just trying to shorten the longest names in the TAP matrix, which is | 01:05 | ||
| r12142 | lwall++ | overflowing my web page... | |||
| markstos_ | I see other people making commits, but for me the last 24 hours have returned this when I do "svn update" | 01:06 | |
| svn: PROPFIND of '/pugs': could not connect to server (svn.openfoundry.org) | |||
| diakopter | markstos_: stale dns? | 01:07 | |
| cmarcelo | ³/quit | ||
|
01:08
cmarcelo joined
|
|||
| markstos_ | diakopter: Maybe. Is there an easy fix for that? This is on a FreeBSD server. | 01:10 | |
| diakopter | mine reports 140.109.17.109 | ||
| TimToady | if that's not it, maybe something's blocking the http port? | 01:11 | |
| bbl & | 01:12 | ||
| markstos_ | Our firewall rebooted yesterday. Maybe that's related. :) | 01:13 | |
| I have 140.109.17.109, so that's the same. | 01:14 | ||
| Yep, seems to be our firewall. Sigh, our sysadmin just went on vacation for three weeks, the firewall runs on a floppy, and I'm scared to touch it. Oh well. I could use a different machine for this. | 01:15 | ||
|
01:30
meppl joined
|
|||
| aufrank | I'm going to bed, but I'll backlog in the morning to see if anyone had any ideas about the build error I posted above | 01:37 | |
| thanks for any help! | |||
| buubot | purge! | ||
|
01:42
tup joined
01:45
meppl joined
|
|||
| diakopter | i keep getting authorization failed when trying to commit... can someone check my commit bit? | 01:48 | |
| TimToady | I see no diakopter on openfoundry. or do you have a different handle there? | 01:57 | |
| diakopter | WILSON is the id, I think... | ||
| I log in with the correct password, and it says "account is not verified" | 01:58 | ||
| TimToady | there's a wilson_huangtw | ||
| diakopter | so I go to the email I got when I registered | ||
| not that one | |||
| and both click the link and reply to the email but still, the account is not verified | |||
| I guess I could re-register with a different email address | |||
| perhaps they had to partially restore from backup a few days ago.. I initially created the account during the outage | 02:01 | ||
| oh well, i'll re-register | |||
| TimToady | could be. I don't see an outstanding invite either, so maybe you need a new invite. | ||
| diakopter | hmm; I never got an invite | 02:02 | |
| TimToady | what's your email? feel free to use " at ", etc. | 02:03 | |
| if you didn't get an invite, what email are you looking at? | 02:09 | ||
| diakopter | ah, there we go; that's the first time I got the "registration successful" email - matthew at veradox com | ||
| the registration with the openfoundry site | 02:10 | ||
| TimToady | i think you need an invite from the pugs project. hang on. | 02:11 | |
| okay, I clicked the pugs box to add you to that project. but I don't see a "wilson". did you use some other id? | 02:13 | ||
| diakopter | the second time I used diakopter | ||
| TimToady | nevermind | ||
| diakopter | I guess wilson is klined | ||
| TimToady | yes, it's there. | ||
| you should be good. | 02:14 | ||
| diakopter | thanks! | ||
| TimToady | np | ||
| dinner & | |||
| it's customary to add yourself to AUTHORS first, by the way, in case you didn't know... | 02:16 | ||
| and if you did know, well, it's still customary. :) | |||
| diakopter | in AUTHORS, is the () name the PAUSE id or the svn id | 02:17 | |
| TimToady | CPAN | ||
| so yes, PAUSE | |||
| your svn id would be in quotes as your nickname. | 02:18 | ||
| and your chinese or klingon name goes on the right. :) | |||
| svnbot6 | r12143 | diakopter++ | my first commit - adding myself to AUTHORS. | ||
| TimToady | and there you are. welcome aboard, or abroad, if you're from Taiwan. :) | 02:19 | |
| re-dinner & | |||
|
02:30
markstos_ left
02:40
deleff joined
03:00
lumi joined
03:04
agentzh joined
|
|||
| agentzh | a quick question: is it okay to move t/statements/closure_traits/ to t/closure_traits? | 03:05 | |
| because the path t/statements/closure_traits/* is too long... | |||
|
03:06
gaal joined
|
|||
| agentzh | gaal: do you think it's okay to create a new t/closure_traits/ with the related tests under t/statements/? | 03:07 | |
| i don't want closure_traits to be under t/statements anyway. | 03:08 | ||
|
03:11
weinig is now known as weinig|foood
03:12
weinig|foood is now known as weinig|food
|
|||
| audreyt | TimToady: I understand that "is rw" vivifies and "is ref" not | 03:18 | |
| svnbot6 | r12145 | agentz++ | moved t/statements/first.t to t/closure_traits/first.t | ||
| audreyt | TimToady: how else is "is rw" able to coerce its argument into a lvalue, though? | ||
| sub f ($x is rw) {$x++} f(3) | |||
| is currently error is pugs. is that correct? | 03:19 | ||
| s:2th/is/in/ | |||
| svnbot6 | r12146 | agentz++ | moved t/statements/init.t to t/closure_traits/init.t | 03:21 | |
|
03:22
agentzh joined
|
|||
| svnbot6 | r12147 | agentz++ | moved t/statements/exit_in_begin.t and statements/exit_in_check.t into t/closure_traits/. | 03:22 | |
|
03:31
gaal joined
|
|||
| svnbot6 | r12148 | agentz++ | readded check.t to t/closure_traits/ | 03:31 | |
|
03:32
weinig|food is now known as weinig|fed
|
|||
| agentzh | lunch & | 03:32 | |
|
03:32
agentzh left
|
|||
| cmarcelo | audreyt: hey. judy build integration here is up, but a lot of tests are failing with latest rev, i'm going to check this now... any news on svk situation? | 03:39 | |
| audreyt | cmarcelo: sadly not, either they are all busy, or something | 03:42 | |
| I'll keep prodding | |||
| oh wait | |||
| it's weekend, of course nobody is there ;) | |||
| cmarcelo | sorry for crashing repo for svk users.. =P | 03:44 | |
|
03:45
weinig|fed is now known as weinig
|
|||
| audreyt | it's not your fault :) | 03:57 | |
|
03:59
deleff left
04:18
amnesiac joined
04:22
soisoisoi joined
04:44
vsoni joined
|
|||
| gaal | motning | 04:47 | |
| audreyt | hey | 04:53 | |
| vsoni | audreyt: hi | ||
| audreyt | hi vsoni | ||
| vsoni | audreyt: long time | ||
| aydreyt: how was OSCON | 04:54 | ||
| gaal | agentzh: sure, if you think there'll be many of them. an alternative is subrouting/closure_traits/* or .t | ||
| audreyt: as you saw I punted on circularity :( | |||
| I'll add Capture to Pugs.Val.Code now, and then we can have some fun | 04:55 | ||
| audreyt | yup | ||
| I wonder how to teach Cabal about #include | |||
| gaal | why does cabal need to know? | ||
| audreyt | if you change Code.hs | 04:56 | |
| gaal | oh. hmpf. | ||
| audreyt | Val.hs needds to be rebuilt | ||
| cmarcelo | folks, t/builtins/hashes/delete.t is supposed to be broken in trunk ? | ||
| audreyt | yes | ||
| gaal | well, the answer is not to fix cabal, fix ghc so #include can be thrown away :) | ||
| j/k | 04:57 | ||
| #include of things like version is legit | |||
| audreyt | the test is bogus | 04:58 | |
| gaal | Cabal doesn't depeng on ghc, right? | ||
| so the fix can't be ghc-specifig | |||
|
04:59
cnhackTNT joined
|
|||
| TimToady | audreyt: f(3) is an error. hopefully detectable at compile time in this case. | 04:59 | |
| Note that this is the \'type\' of a \'sub\', and has nothing to do with | 05:00 | ||
| subtyping. | |||
| Maybe we should s/Sub/Code/ on SubType, SubMethod, etc. | |||
| since they're VCodes, after all. | 05:01 | ||
| biab & | |||
|
05:01
vsoni left
|
|||
| svnbot6 | r12149 | audreyt++ | * hashes/delete.t: fix bogus test. | 05:03 | |
|
05:03
kanru joined
|
|||
| audreyt | TimToady: yeah, SubType is gone from the new AST in Pugs.Val.* | 05:04 | |
|
05:22
pdcawley joined
05:24
DaGo joined
|
|||
| spinclad | ' i think i am a camel / who is looking for a camel / who is looking for a camel / who is looking for its young ' | 05:29 | |
| gaal | audreyt: captures are in. how to test-drive them? | 05:36 | |
| svnbot6 | r12150 | gaal++ | * Captures in da house | 05:42 | |
| r12151 | gaal++ | * add missing fields in Code for ENTER, LEAVE, CATCH and CONTROL. | 06:06 | ||
|
06:07
DaGo joined
|
|||
| audreyt | gaal: write parser for \() | 06:08 | |
| as its own quote | |||
| gaal | k | 06:10 | |
| TimToady | you have c_undoBlocks in there twice | 06:14 | |
| gaal | trying to figure out if it's possible to reuse ruleFormalParam etc. | ||
| oops, fxing | |||
| svnbot6 | r12152 | gaal++ | * remove duplicate field, reported by TimToady++. | 06:15 | |
| TimToady | arguably you just want to put undo and keep blocks in the leave list with conditionals around them. | 06:16 | |
| gaal | eaiser introspection if they're separate... | ||
| TimToady | true. probably premature optimization | ||
| on the other hand, maybe they want to interleave execution | 06:17 | ||
| gaal | hmm. | ||
| so add a datatype | 06:18 | ||
| c_leaveBlocks :: [LeaveCode] | |||
|
06:18
tea joined
|
|||
| gaal | data LeaveCode = NormalLeave Code | KeepLeave Code | UndoLeave Code | 06:19 | |
| (except named conformantly) | |||
| TimToady | something like that. arguably most blocks won't have any of these properties... | 06:20 | |
| gaal | but those that do would appreciate them working correctly :) | ||
|
06:20
agentzh joined
|
|||
| gaal | good thing there's no such thing as abnormal entry. | 06:21 | |
| sometimes lack of symmetry is nice | |||
| agentzh | TimToady: what is the type of %$pair (where $pair is a Pair object) ? | ||
| TimToady | goto label; repeat { ...; label: ... } while 1; | ||
| gaal | ouch | 06:22 | |
| oh right, duff's device etc. | |||
| TimToady | I suspect it's just Pair, but Pair does Hash, or some such. | 06:23 | |
| on the other hand, maybe the intent is to transform into a Hash. | |||
| audreyt | if Pair does hash then %$pair can remain Pair | 06:24 | |
| but this concerns e.g. | |||
| agentzh | it's a bit counterintuitive IMHO. | 06:25 | |
| audreyt | %$pair.<x y z> = <1 2 3 | ||
| > | |||
| and | |||
| agentzh | my gut feeling is % is a hash convertor or something like that. | ||
| audreyt | my %h := %$pair | ||
| so maybe it should alloc a concrete Hash | |||
| which is more intuitiv | |||
| e | |||
| TimToady | maybe, but if Type($thing) always constructs a new one, we need some way of saying that we don't care if there's a new one. | 06:26 | |
| agentzh | so then $pair has multiple keys? | ||
| TimToady | new Type can construct, and Type() can just ask for the interface one way or another. | 06:27 | |
| audreyt | Type is vlue type | ||
| (pure) | |||
| TimToady | so Type() would be a noop if it already supports the role | ||
| audreyt | so "new" is the same | ||
| TimToady | whereas new would force a new copy anyway | ||
| seems intuitive that saying "new" makes a new one. | 06:28 | ||
| and the longer thing is more work. | |||
| audreyt | k. | ||
| TimToady | after $a := Type($b) we don't care whether $a =:= $b | 06:29 | |
| svnbot6 | r12153 | gaal++ | * TimToady++ observes that LEAVE traits may be interleaved with | ||
| r12153 | gaal++ | KEEP/UNDO. Turn exit blocks into one tagged list. | |||
| TimToady | or whichever one it is... | ||
| agentzh | TimToady: thank you for clarification. | ||
|
06:30
HXanadu joined
|
|||
| agentzh | ?eval my $pair = :when<now>; say %$pair.does('Hash'); | 06:31 | |
|
06:31
evalbot_12127 is now known as evalbot_12152
|
|||
| evalbot_12152 | OUTPUT[ ] Bool::True | 06:31 | |
| agentzh | heh | ||
| TimToady | anyway, I think %$pair is Hash($pair) and not Hash.new($pair). | ||
| ?eval my $pair = :when<now>; say $pair.does('Hash'); | 06:32 | ||
| agentzh | TimToady: gotcha. | ||
| evalbot_12152 | OUTPUT[ ] Bool::True | ||
| agentzh | oh, Pair already does Hash. | ||
| so %() is a noop. | |||
| TimToady | yep. | ||
| either that, or .does is hardwired to return True. :) | 06:33 | ||
|
06:33
HXanadu_ joined
|
|||
| TimToady | ?eval my $pair = :when<now>; say $pair.does(Hash); | 06:33 | |
| evalbot_12152 | OUTPUT[ ] Bool::True | ||
| agentzh | hehe | ||
| TimToady | ?eval my $pair = :when<now>; say $pair.does(Int); | ||
|
06:33
crem joined
|
|||
| evalbot_12152 | OUTPUT[ ] Bool::True | 06:33 | |
| audreyt | ?eval Pair.does(Hash) | ||
| agentzh | oh, dear... | ||
| TimToady | ?eval my $pair = :when<now>; say $pair.does(Array); | ||
| evalbot_12152 | Bool::False | ||
| OUTPUT[ ] Bool::True | |||
| TimToady | whew | ||
| agentzh is lost. | 06:34 | ||
| TimToady | True is return value of say | ||
| audreyt | aye | ||
| TimToady | ?eval my $pair = :when<now>; $pair.does(Hash); | 06:35 | |
| agentzh | oh, i see. | ||
|
06:35
evalbot_12152 is now known as evalbot_12153
|
|||
| evalbot_12153 | Bool::False | 06:35 | |
| agentzh | so this is a pugs bug. | ||
| TimToady | ?eval my $pair = :when<now>; %$pair.does(Hash); | ||
| evalbot_12153 | Bool::False | ||
| TimToady | so it would seem | 06:36 | |
| agentzh | this one too. | ||
| agentzh is adding these two to the test suit... | |||
| TimToady | agentzh++ | 06:37 | |
| audreyt | while in other languages we'd use IHashCollection | ||
| and HashTable | |||
| agentzh | :=) | ||
| audreyt | to mean the interface and the concrete class | ||
| and perl6 also encourages the use of roles as interfaces and class for managing instance | |||
| the .does(Hash) pattern seems to run counter to that goal quite badly :) | |||
| class Hash {...}; class Pair does Hash {...} | 06:38 | ||
| though it's probably sound :) | |||
| but that implies that if class Hash "has $!something" | |||
| then Pair will implicitly carry around that via a closure | 06:39 | ||
| but it will just restrict the use | |||
| such that there is only one key | |||
| i.e. it's really a constrained mutable Hash | |||
| TimToady | i've always thought of using classes as roles more like taking a snapshot of the class and calling the snapshot immutable. | 06:40 | |
| audreyt | but I think it's not much useful... | ||
| TimToady: but does the attr slots get carried over? | |||
| class Moose { has $!x; has $!y } | |||
| class Foo does Moose {...} | |||
| spinclad | label: ...; repeat { ...; comefrom label; ... } while 1; | ||
| audreyt | it's essentially noop, then? | 06:41 | |
| i.e. only methods (and also public accessors of ourse) are carried over | |||
| TimToady | what is noop? | ||
| audreyt | the "does Moose" part | ||
| spinclad | (sorry, was backlogged) | ||
| audreyt | i.e. it's like saying | ||
| role Moose {}; class Foo does Moose | |||
| and unlike | |||
| role Moose {has $!x; has $!y}; class Foo does Moose | |||
|
06:41
weinig is now known as weinig|sleep
|
|||
| TimToady | why not the latter? | 06:41 | |
| as long as you ignore subsequent changes to Moose? | 06:42 | ||
| audreyt | would Foo.new() take x=> y=> ? | ||
| (I assume "yes") | |||
| i.e. Foo will alloc two slots for x and y? | 06:43 | ||
| TimToady | I would think so. | ||
| audreyt | if so, how does "Pair does Hash" work without carrying over all Hash'es internal storage? | ||
| agentzh | good question. | ||
| TimToady | hmm. | ||
| seems like we have two kinds of "does" here. | 06:45 | ||
| agentzh | one does the interface and one does the implementation? | ||
| TimToady | on the other hand, if a real role includes an attribute, it has to be handled by the class. | 06:46 | |
| so maybe it's sane to just say does Class ignores attributes. | |||
| I dunno... | |||
| agentzh grins. | |||
| audreyt | 08:46 < TimToady> so maybe it's sane to just say does Class ignores attributes. | ||
| it's sound :) | 06:47 | ||
| so Class does Role | |||
| and because Role isa Class | |||
| so Class ignore Role's attribute | |||
| so if you does SomeClass, its meta Class gets to act as a Role | 06:48 | ||
| without Roles storage :) | |||
| (er, that's probably the maximally confusing way to put this) | |||
| TimToady | MEGO | ||
| could have something to do with it almost being midnight though... | 06:49 | ||
| audreyt | anyway, I think this is a way to formalize punning | ||
| but if we don't formalize punning, then we need IConvertible IEnumerable etc etc | 06:50 | ||
| either way is fine. punning is breaking new grounds :) | |||
| TimToady | Roles don't actually contain attributes. | ||
| they merely have the skeletons of attributes that the class sets up | |||
| audreyt | A completely private role attribute may be declared like this: | 06:51 | |
| has $!spleen; | |||
| The name of such a private attribute is always considered lexically scoped. | |||
| If a role declares private lexical items, those items are private to | |||
| the role due to the nature of lexical scoping. Accessors to such | |||
| items may be exported to the class, but this is not the default. | |||
| hmm. | |||
| TimToady: sure. that is another way to say "you can't instantiate a instance from a role" | 06:52 | ||
| TimToady | we probably need stevan to hammer on this too. | ||
| audreyt | Moose::Meta::Class doesn't yet handle "does" I think | ||
| stevan: hey :) | 06:53 | ||
| oh, stevan is about to sleep too. | |||
| tomorrow then :) | |||
| obra | morning | ||
| audreyt | agentzh: %$pair should definitely "does Hash" | ||
| agentzh: hold the $pair part for a bit :) | |||
| obra | audreyt: nelhage wrote more RT::Plugin::REST failing tests | ||
| agentzh | audreyt: thanks | ||
| audreyt | good | ||
| I'll lookAtTheTests | 06:54 | ||
| obra | once it works, he can give you cli tools for hiveminder ;) | ||
| audreyt | moose ;) | ||
|
06:56
HXanadu__ joined
|
|||
| TimToady (va)mooZzzes. & | 06:57 | ||
| svnbot6 | r12154 | agentz++ | [t/data_types/pair.t] | 06:59 | |
| r12154 | agentz++ | added tests for $pair.does(Hash) and (%$pair).does(Hash). | |||
| r12155 | agentz++ | [t/data_types/pair.t] | 07:05 | ||
| r12155 | agentz++ | commented out the test for $pair.does(Hash) according to audreyt. | |||
|
07:13
Aankhen`` joined
|
|||
| agentzh | (bbiab) | 07:16 | |
| question: should BEGIN blocks interpolated in double-quoted strings be fired at compile-time or run-time? | 07:26 | ||
| for example, say "This is { BEGIN { say 'hi' } }"; | 07:27 | ||
| audreyt | compile time. | 07:33 | |
| qq is not eval. | |||
| agentzh | audreyt: thanks! | 07:34 | |
| audreyt | =) | ||
| agentzh | ?eval eval('$handle = { BEGIN { say "hello, world!" } }'); | 07:35 | |
|
07:35
evalbot_12153 is now known as evalbot_12155
|
|||
| evalbot_12155 | OUTPUT[hello, world! ] undef | 07:35 | |
| agentzh | ?eval eval('$handle = { INIT { say "hello, world!" } }'); | ||
| evalbot_12155 | undef | ||
| agentzh | audreyt: is this a bug? | ||
| i think INIT should run ASAP during runtime. | 07:36 | ||
| just like BEGIN in this example. | |||
| audreyt | aye I think. | 07:38 | |
| test it :) | |||
| agentzh | i'll leave it failing in t/closure_traits/eval.t. | 07:39 | |
| audreyt | agentzh: re the thread about moving t/ to another repo | 07:41 | |
| I think src/ and t/ needs to stay in the same repo, that's true | 07:42 | ||
| but preferably if parrot/ is in the same repo | |||
| then that will also simplify things | |||
| in particular svk merge history | |||
| agentzh | yep! | ||
| audreyt | so moving everything to svn.perl.org makes sense :) | ||
| [particle]'s suggestion makes a lot of sense... | 07:43 | ||
| agentzh | hopefully you can persuade the parrot folks. | ||
| *nod* | |||
| audreyt | actually Ask and Robrt are the only people we need to persuade... :) | ||
| # noc.perl.org/ | |||
| lambdabot | Title: The Perl NOC - perl.org | ||
| agentzh | i was only thinking about expirable TODOs. but you guys think much further. ;-) | 07:45 | |
| audreyt | i.e. our history is already in svn.perl.org/perl6/pugs/ | ||
| lambdabot | Title: Revision 10863: /pugs | ||
| audreyt | and if we move t/ one level up | ||
| into | |||
| svn.perl.org/perl6/t/ | |||
| I think it'd be all for the best | |||
| agentzh | Hmm, it looks like a great idea. | 07:46 | |
| but i'm afraid you would not be able to send out commit bit freely. | |||
| audreyt | especially attractive in the time of openfoundry mod_dav_svn troubles :) | 07:47 | |
| sure, see my p6l reply | |||
| agentzh | okay | ||
| audreyt | I asked Robrt for a web gateway for sending invites | ||
| nd adding people (using their perl.org auth) | |||
| he has coded it up already | |||
| but it's not yet actively used | 07:48 | ||
| agentzh | audreyt: nice writing! | 07:50 | |
| audreyt | :) | 07:51 | |
| (bbl) | |||
|
07:55
luqui joined
|
|||
| agentzh tries to fix the INIT {} bug under src/ | 07:56 | ||
| agentzh gives up now. | 07:59 | ||
|
08:02
integral joined
|
|||
| svnbot6 | r12156 | agentz++ | [t/closure_traits/eval.t] | 08:05 | |
| r12156 | agentz++ | added more tests to runtime-fired BEGIN/CHECK/INIT/etc. one of the tests for INIT {} is failing due to a Pugs bug. | |||
| r12157 | agentz++ | added t/closure_traits/interpolate.t to test BEGIN/CHECK/INIT/END blocks interpolated in double-quoted strings | 08:17 | ||
| r12157 | agentz++ | removed the redundant syntax/begin_in_strings.t | |||
|
08:20
tea left
08:36
ludan joined
08:42
nothingmuch joined
|
|||
| svnbot6 | r12158 | agentz++ | [t/statements] | 08:42 | |
| r12158 | agentz++ | renamed array_values_in_bool_context.t to values_in_bool_context.t and also added more tests to it. | |||
| agentzh | blb & | 08:43 | |
|
09:00
agentzh left
09:08
foo\ joined
09:22
tup joined
09:30
integral joined
09:48
buetow joined
09:49
kane-xs joined
09:53
chris2 joined
|
|||
| svnbot6 | r12159 | luqui++ | Simplified the CHECK and INIT tests. | 09:59 | |
| r12160 | luqui++ | Redid the CHECK and INIT code to execute CHECKs in reverse order. | |||
|
09:59
rodi joined
10:12
diakopter joined
10:15
elmex joined
|
|||
| svnbot6 | r12161 | luqui++ | More useful error message when using a non-rhsable closure trait as an rhs. | 10:29 | |
|
10:32
Southen_ joined
|
|||
| froh-doh | I've seen in Overview/Data.pod that scalars should have an "exists" method. Another mention of this is in a conjecture inside Spec/Subroutine.pod. Is this still an alive idea? Is it useful to add a test for this? | 10:48 | |
| (side note: I know I've already asked this question here, should I post it in the mailing list?) | 10:49 | ||
|
10:58
agentzh joined
|
|||
| agentzh | luqui++ # fixed CHECK {...} and check.t | 10:59 | |
| luqui | froh-doh, hmm | 11:00 | |
| Something tells me that they shouldn't | |||
| okay, if exists exist, it should be written $scalar.VAR.exists, I imagine | 11:01 | ||
| i.e. the idea that there are methods which do not direct to the cell is bogus | 11:02 | ||
| that is why we introduced .VAR | |||
| froh-doh | is it something already available? | ||
| froh-doh tries | |||
| luqui | I don't think VAR is implemented | 11:03 | |
| ... in any form | |||
|
11:03
TimToady joined
|
|||
| luqui | I will change and add a note for audreyt and/or TimToady to check my sanity | 11:04 | |
| froh-doh | you're right: '*** No such sub: "&VAR" | ||
| luqui | where that sentence is the note :-p | ||
| froh-doh | luqui: is there some place where I can read about VAR? | 11:08 | |
| ah, Object.pod | |||
| grep++ | |||
| luqui | also S12 | ||
| froh-doh | aka S12 | 11:09 | |
| svnbot6 | r12162 | luqui++ | Made up some stuff about .VAR and .exists on scalars. | 11:11 | |
| agentzh | luqui: should a "global" FIRST {...} runs before the mainline code? | 11:13 | |
| *run | |||
| luqui | agentzh, I would consider FIRST to belong to the lexical scope of the mainline code | ||
| that is, it would run before the mainline code *of that file* | |||
| agentzh | yes, i second. | 11:14 | |
| so i've hit a pugs bug. :) | |||
| luqui | yeah. there's also the INIT thing with eval | ||
| agentzh | :=) | 11:16 | |
| svnbot6 | r12163 | agentz++ | [t/closure_traits/] | 11:17 | |
| r12163 | agentz++ | rewrote ascending_order.t and descending_order.t following luqui's style in check.t (one of these tests for FIRST {...} is failing due to a pugs bug) | |||
| r12164 | agentz++ | [t/closure_traits/] | 11:26 | ||
| r12164 | agentz++ | multiple.t: fixed the expected CHECK running order in tests and added tests for FIRST {...} (luqui++) | |||
| r12164 | agentz++ | tweaked the links in check.t. | |||
|
11:37
jferrero joined
|
|||
| svnbot6 | r12165 | agentz++ | [t/closure_traits/] | 11:37 | |
| r12165 | agentz++ | simplified the rval parts of check.t and init.t | |||
| r12165 | agentz++ | fixed the parse error in rvalue.t | |||
| agentzh | what's the running order of FIRST {...} versus ENTER {...}? | 11:46 | |
|
11:47
kanru joined
|
|||
| svnbot6 | r12166 | agentz++ | [t/closure_traits] | 11:55 | |
| r12166 | agentz++ | added tests for FIRST {...} to interpolate.t. | |||
| r12166 | agentz++ | tweaked the comments in other test files. | |||
|
11:55
nnunley joined
|
|||
| agentzh | BEGIN {... | 12:03 | |
| in Perl 6, &exit call in BEGIN {...} implicitly calls END {...} while CHECK {...} does not? | 12:04 | ||
| Hmm, this behavior is not specified, so we should assume it remains the same as in Perl 5. | 12:05 | ||
|
12:05
iblechbot joined
|
|||
| gaal | audreyt: ping | 12:07 | |
|
12:10
lisppaste3 joined
|
|||
| svnbot6 | r12167 | agentz++ | tidied up exit_in_begin.t and exit_in_check.t a bit. | 12:10 | |
|
12:10
f0rth joined
12:11
dolmans joined
|
|||
| agentzh | ?eval my $sub = { my $var = 2; FIRST { $var = 1 } $var }; $sub() | 12:17 | |
|
12:17
evalbot_12155 is now known as evalbot_12167
|
|||
| evalbot_12167 | \1 | 12:17 | |
| agentzh | ?eval my $sub = { my $var; $var = 2; FIRST { $var = 1 } $var }; $sub() | ||
| evalbot_12167 | \1 | ||
| agentzh | is it a bug? i think FIRST {} should be called at subroutine entry time, and ASAP. | 12:18 | |
| audreyt, TimToady: please confirm. :) | |||
| jferrero is away: Ocupado... ahora vuelvo... | 12:19 | ||
| froh-doh | I'd like to add a script into util, is is better to discuss it here before? | 12:24 | |
| agentzh | froh-doh: what's that script? | 12:25 | |
| froh-doh | agentzh: it's a slightly modified version of www.perlmonks.org/?node_id=567025 | ||
| lambdabot | Title: Color diff for terminal | ||
| agentzh | froh-doh: is it supposed to used with pugs? | 12:26 | |
| froh-doh | the modification is to make it work with svk natively | ||
| agentzh: no, it would help to show differences between revisions | |||
| agentzh | heh, you will write it in Perl 6? | ||
| froh-doh | uhm, interesting :) | 12:27 | |
| I'll try | |||
| agentzh | if it's in Perl 6, it had better go into examples/ | ||
| froh-doh: good luck! | |||
| wolverian | I like vimdiff. :) | 12:28 | |
| froh-doh | thanks. Anyway, I'd like it to be useful (hence 'util' :), but maybe it's useful only for me and it can happily reside in my $PATH | ||
| it basically gets the diff output and colorises it, to make it visually clearer where the differences are | 12:30 | ||
|
12:30
lollan joined
|
|||
| agentzh | froh-doh: heh, i'm using TortoiseSVN, which can give me that functionality on Win32. :=) | 12:32 | |
|
12:32
lumi joined
|
|||
| froh-doh | agentzh: that's why it basically doesn't work in Win32 (I guess) ;) | 12:33 | |
| agentzh | hehe | ||
| jferrero is back (gone 00:18:53) | 12:38 | ||
| dolmans | what dose `don't backtrack' mean? dose that mean that ".*:<alpha>" will match fail against "abc"? | 12:52 | |
| froh-doh | uhm, where is __END__ ? | 12:58 | |
| agentzh | dolmans: to the first approximation, not backtracking means the text to be matched should be ambiguous. | 13:00 | |
| svnbot6 | r12168 | agentz++ | [t/closure_traits] | ||
| r12168 | agentz++ | fixed a bug in first.t and also tidied it up. | |||
| agentzh | sorry, i mean "should not be ambiguous" | 13:01 | |
| {.*\w} surely fails to match "abc" | 13:02 | ||
| end of day for me & | 13:03 | ||
|
13:03
agentzh left
|
|||
| dolmans | agentzh: don't really understand. | 13:05 | |
| aufrank | /away | 13:16 | |
| svnbot6 | r12169 | scw++ | Fix Pugs::Emitter::Rule::Parsec with changes to P::R::C | 13:25 | |
| r12169 | scw++ | to compile Pugs::Grammar::MiniPerl6 without v6. | |||
| froh-doh | is there some way to do open my $fh, '-|', $forked_command; ? | 13:37 | |
| gaal | Pipe.open | 13:42 | |
| see Prelude.pm | |||
| froh-doh | uhmm, Prelude.pm does not esist in my installation, but Prelude.pm.yml :/ | 13:47 | |
| Jedai | ?eval my %h = (1 => 2); "1 : ok" if %h.exists('1'); %h<3> = %h.exists('3') ?? 'oops' !! 4; | 13:52 | |
|
13:52
evalbot_12167 is now known as evalbot_12169
|
|||
| evalbot_12169 | \"oops" | 13:52 | |
| svnbot6 | r12170 | fglock++ | v6 - fixed AST stringification in v6::AST::Base | ||
| Jedai | ?eval my %h = (1 => 2); %h.exists('1') | ||
| evalbot_12169 | Bool::True | ||
| Jedai | Is %h<3> = %h.exists('3') ?? 'oops' !! 4; ok ? Is it a bug ? | 13:53 | |
| svnbot6 | r12171 | fglock++ | v6-Compiler - make Sub::Multi errors locally non-fatal | ||
|
14:01
elmex joined
|
|||
| gaal | froh-doh: the .yml file is a compiled version. You can browse the source here: svn.openfoundry.org/pugs/src/perl6/Prelude.pm | 14:09 | |
|
14:20
diakopter joined
14:28
rashakil joined
|
|||
| svnbot6 | r12172 | audreyt++ | * Now that gaal++ implemented "vv" to convert oldval to newval, | 14:28 | |
| r12172 | audreyt++ | we take back the `cmd` and qx{cmd} and q:exec{cmd} notation | |||
| r12172 | audreyt++ | and make them to what they used to do in Perl 5 -- namely, | |||
| r12172 | audreyt++ | capture an external command's output. | |||
| r12172 | audreyt++ | * Also simplify .meth parsing now that ./meth is gone. | |||
|
14:30
pmurias joined
|
|||
| pmurias | hi, | 14:30 | |
| would should i do to fix the Delta source ended unexpectatly error? | 14:31 | ||
| cmarcelo | use svk sy -s 12103 //mirror/pugs... | 14:32 | |
| it'll skip the problematic revs.. | |||
| froh-doh | how can I translate my $fh = \*STDIN; ? | 14:33 | |
| audreyt | my $fh = $*IN; | ||
| froh-doh | thanks, and sorry for boring | ||
| audreyt | no need to :) | 14:34 | |
| froh-doh | ok, so only "sorry for boring" ;) | ||
| Jedai | ?eval my %h; %h<1> = %h.exists('1') ?? "oops" !! "ok"; | ||
|
14:34
evalbot_12169 is now known as evalbot_12172
|
|||
| evalbot_12172 | \"oops" | 14:34 | |
| audreyt | heh | ||
| pmurias | cmarcelo: thanks, it seems to be doing something... | 14:35 | |
| Jedai | Is this normal ? | ||
| audreyt | no, this is otterly broken | ||
| I mean, utterly | |||
| Jedai | I add a test in exists.t ? | ||
| audreyt | hm, wait | ||
| actually... | |||
| perhaps it's fine. | 14:36 | ||
| it depends on who is the recipient of the assignmen | |||
| Jedai | Well I wondered, because in Perl5 it worked | ||
| audreyt | if it's the (autovivifieD) Scalar that's stored in %h<1> | ||
| then that behaviour is correct | |||
| if {}= is a special method on %h itself | |||
| as is the case with perl5 | |||
| then it should be "ok" | 14:37 | ||
| gaal | audreyt: hey :) in the parser, do any of the existing functions help with capture? | ||
| they're a little twisty | |||
| parseHasParenParamList etc/ | |||
| wolverian | hm, so is there a %h=<foo> form like with methods? (to replace the contents of %h with the contents of %h<foo>) | 14:38 | |
| audreyt | yes, it's | ||
| parseHasParenParamList | |||
| maybe s/ParamList/Capture/ whilst you are at that | |||
| wolverian: %h .= <foo> | |||
| wolverian | ah. thanks | ||
| audreyt | but I don't think it's specced | 14:39 | |
| wolverian | it's basically a fold | ||
| audreyt | *** the right-hand-side of .= must be a function application | ||
| wolverian | a special-case fold anyway | ||
| audreyt | is the current pugs error | ||
| but I think it should be made to work | |||
| wolverian | nice :) | ||
| Jedai | So this is correct ? Ok, I guess we should remember it when translating Perl5 to Perl6. I'll correct the example which used this incorrectly. | 14:40 | |
| audreyt | TimToady: S12 mentions a very curious, unseen in S02, category | ||
| method self:sort { ... } | |||
| I understand the motivation for this | 14:41 | ||
| but it seems it's closely tied to .= | |||
| Jedai: I _think_ the current pugs behaviour is correct, but thi part is less than well-specced | 14:42 | ||
| gaal | audreyt: but sould I make a transformer over that to return newExp? or just copy the code? (this functino seems to lose named information too, if I understand what it does correctly) | ||
| audreyt | I think it parsed nameds to Syn "named" | ||
|
14:43
xern joined
|
|||
| audreyt | so for 0th approx you can transform | 14:43 | |
| but feel free to copyCode too | |||
| gaal | where should newexp live? Pugs.AST ? | ||
| Jedai | ?eval "regex" ~~ /^\w+$/ | 14:44 | |
| evalbot_12172 | Match.new( ok => Bool::True, from => 0, to => 5, str => "regex", sub_pos => (), sub_named => {} ) | ||
| gaal | or should this be a function returning a VV PureCapt in which the leaf Exps are oldExps? | ||
| audreyt | the latter. | 14:45 | |
| hm wait | |||
| no | |||
| PureCapt should have Val as leaf | |||
| the Exp-level Capt would have Exp as leaf | |||
| two different things | |||
| gaal | ? we now have: | 14:46 | |
| data Cap = CaptMeth { c_invocant :: Exp, , c_argstack :: [Arglist] } | |||
| audreyt | yes but that's wrong | ||
| invocant needs to be Val | |||
| gaal | or a CaptSub variant | ||
| audreyt | for it to be a Val | 14:47 | |
| gaal | hmmmmm | ||
| audreyt | \$x | ||
| \f() | |||
| the latter does not mean defer{} | |||
| gaal | right | ||
| audreyt | it cannot rerun f() ecach time it is $()d | ||
| so at value level it's firstclass value with value leaves | |||
| at exp level it's a exp node with exp leaves | |||
| maybe parameterize it? | 14:48 | ||
| data Cap a = ... | |||
| where a is Exp or Val? | |||
| not sure | |||
| (and then | |||
| type ExpCap = Cap Exp | |||
| ) | |||
| gaal | yeah... | ||
| audreyt | ?eval `ls` | 14:49 | |
| evalbot_12172 | Error: Unsafe function 'Pugs::Internals::runShellCommand' called under safe mode | ||
| audreyt | good | ||
| gaal | whee | ||
| btw, this is marked unsafe: | |||
| ?eval %?CONFIG<sitelib> | |||
| evalbot_12172 | Error: Can't modify constant item: VUndef | ||
| gaal | oh, weird error too | 14:50 | |
| I can't think why it was marked unsafe, but I don't want to blindly change it | |||
| leaks information about running evalbot? | 14:51 | ||
|
14:52
pmurias left
|
|||
| audreyt | yeah but. that's fine | 14:58 | |
| ununsafe it? | |||
| wolverian | can I see (:t foo etc) names defined in a let instead of top scope in ghci? | 15:01 | |
| pasteling | "aufrank" at 65.37.87.113 pasted "compilation of Prelude.pm looks for installed libparrot" (7 lines, 547B) at sial.org/pbot/18942 | 15:02 | |
| audreyt | Prelude> let x = 1 | ||
| Prelude> :t x | |||
| x :: Integer | |||
| wolverian | hrm, I mean, in a 'let foo = 2 in ...' | ||
| audreyt | aufrank: this is trunk parrot? | ||
| aufrank | does anyone have advice about why building pugs is failing for me? (error is pasted above) | ||
| audreyt: yes, trunk parrot | |||
| audreyt | does it work if you ls -l the blib/lib/libparrot.dylib from parrot tree to /usr/local/lib? | 15:03 | |
| aufrank | I'll try... I didn't want to make install parrot because that has lead to problems in the past and I was told it's generally a bad idea. has that changed recently? | ||
| audreyt | nope. | 15:04 | |
| aufrank | audreyt: did you mean ln -s, not ls -l ? | 15:05 | |
| audreyt | the only thing changed is that when you "make install" | ||
| parrot now tells you to think twice | |||
| ;) | |||
| yeah, ln-s | |||
| aufrank | does pugs require libparrot to be in /usr/local/lib/ ? | ||
| audreyt | no | 15:06 | |
| we do whatever the parrot-config tells us to | |||
| TimToady | I always install parrot, but I'm prepared to hand-uninstall it if I get weirdness. | 15:07 | |
| cmarcelo | what should I do to solve "impossible happened" instead of "make realclean" (which solves it)? | 15:09 | |
| aufrank | audreyt: is there something I can do to parrot-config to tell it "leave /usr/local/ out of this!" | ||
| audreyt: symlink worked, btw | |||
| audreyt | aufrank: I don't know. :/ trace line 384 in Makefile.PL ish | 15:10 | |
| cmarcelo: GHC 6.4.1? | |||
| cmarcelo | 6.5 now | ||
| audreyt | oh? | ||
| hm | |||
| rm dist/build/src/Pugs/Parser.* | |||
| or whichever one that's reporting the impossible | |||
| and make again | |||
| failing that | |||
| rm dist/build/src/Pugs/AST/Internals.* | 15:11 | ||
| and make again | |||
| let me know which worked | |||
| cmarcelo | killing Pugs/Compile/Pugs.* (where the error shows) didn't solve. rm'ing ...AST/Internals.* passed the critical point, so we can tell that worked.. | 15:15 | |
| froh-doh | I'd like to add an example in the examples directory, and I'm using svk | 15:16 | |
| is it still ok to use /util/add-svn-props.sh newfile1 newfile2 | |||
| (which I forgot to do with my first commit, now that I think about it!) | 15:17 | ||
|
15:20
foo\ joined
|
|||
| cmarcelo | audreyt: actually it didn't worked, at the end it had a link problem concerning one function of Pugs.AST.Internals... I just "realclean" by now. | 15:22 | |
| audreyt | cmarcelo: ok... aw. | 15:26 | |
| maybe it was a mistake to trust .hs-boot :/ | |||
| was the imposssible about envPos? | |||
| cmarcelo | Sometimes happened with envPos, but I think there was another one too.. after I solve things here I'll try again rm'ing and making.. | 15:28 | |
| i'm kind of lost here because lots of fails are popping up in pugs-judy (r12148) and I fail to see why =P.. I reviewed some things and now will make-smoke it again.. | 15:30 | ||
| svnbot6 | r12173 | audreyt++ | * envPos and the "impossible" error -- try a workaround | ||
| r12173 | audreyt++ | before giving up on .hs-boot until GHC 6.6. | |||
| audreyt | cmarcelo: well, some new tests have been added | 15:31 | |
| so chances are that's not your fault | 15:32 | ||
| diff it with existing smoke.pugscode.org errors | |||
| and nopaste the entire diff when you are done... I need to crash now :/ | |||
| cmarcelo | I'm matching with a same rev non-judy version I made here.. | ||
| audreyt | oh? :/ | 15:33 | |
| nopaste the diffs of failures too | |||
| then | |||
| cmarcelo | diff smoke.html with smoke.html is ok? or you mean a manual diff =P | 15:36 | |
| s/manual/visual/.. | |||
| svnbot6 | r12174 | polettix++ | Added examples/colordiff.pl and called util/add-svn-props.sh on | 15:39 | |
| r12174 | polettix++ | docs/other/primes_rambling.pod. | |||
| audreyt | I'd prefer w3m dump to text and diff the text | 15:41 | |
| but I'll bbl :) | 15:42 | ||
| audreyt sleeps & | |||
| cmarcelo | ok | ||
| audreyt | nice rambling :) | 15:45 | |
| sub is_prime ($n) { ... } # this would save the .shift as well | 15:46 | ||
| & | |||
| stevan | audreyt, TimToady: re: the Roles stuff in the backlog | 15:55 | |
|
15:55
foo\ joined
|
|||
| stevan | I think Hash, Array, etc should probably not have any attributes | 15:55 | |
| or rather.. the role versions of them | |||
| svnbot6 | r12175 | polettix++ | Used formal sub arguments as suggested by audreyt | ||
| stevan | maybe we call them IHash, IArray and IEtc | 15:56 | |
| they simply provide the interface,... | |||
| then the concrete implementation (Hash, Array, Etc) all use the instance representation types for storage | |||
| so class Array does IArray { # no has @!storage } | 15:57 | ||
| it just uses the internal instance structure,.. in this case a perl6array | 15:58 | ||
| this approach has a couple of benefits I think | |||
| audreyt | sub (@x) {...} | ||
| @x will be constrained then to IList then? | 15:59 | ||
| lambdabot | Maybe you meant: . v | ||
| stevan | 1) array like behavior becomes a mixin through the Role | ||
| audreyt | i.e. it wouldn't care about the concrete class | ||
| similarily | |||
| stevan | audreyt: yes, probably | ||
| audreyt | sub (%x) { ...} would be constrianed then to IMapping | ||
| stevan | yes | ||
| audreyt | sub (%x is rw) {...} would be constrained to IHash | ||
| etc | 16:00 | ||
| stevan | yes | ||
| :) | |||
| audreyt | it's very much less punny | ||
| stevan | this approach also discourages inheriting from Array, Hash, etc | ||
| audreyt | but what does .does(Array) mean? | ||
| synonym for .isa(Array) then | |||
| right? | |||
| stevan | which is probably a good thing since they need custom instance structures to be efficient | ||
| yes, I suppose that would need to be special cases | 16:01 | ||
| unless | |||
| audreyt | unless .does(AnyClassHere) | ||
| stevan | .does(<class>) meant something different from .does(<role>) | ||
| audreyt | simply means .isa(AnyClassHere) | ||
| stevan | I am not sure it means the exact same as .isa | ||
| audreyt | I wonder why the method is .isa and the trait auxillary is "is" | 16:02 | |
|
16:02
markstos_ joined
|
|||
| stevan | I think it should be more duck-type-check-ish | 16:02 | |
| audreyt | class Point3d isa Point { ... } | ||
| but .does(Role) is nominal | |||
| why .does(Class) suddenly becomes structural? | |||
| stevan | structural on the class yes, hmm | ||
| audreyt | I think it needs to stay nomincal | 16:03 | |
| stevan | yeah | ||
| audreyt | and either: | ||
| 1) class F does C {...} does _not_ copy over any instance slots | |||
| and simply mixes in the virtual methods | |||
| so .does(C) can succeed and .isa(C) fail | |||
| or | |||
| 2) class F does C {...} is meaningless | |||
| and .does(C) simply means .isa(C) | |||
| stevan | hmm | 16:04 | |
| I am seeing echos of the implcit/explicit composition stuff nothingmuch and were talking about for handling attributes internally | |||
|
16:04
vel joined
|
|||
| stevan | almost as if we need two views | 16:04 | |
| audreyt | actually timtoady's 3) | ||
| stevan | Class.asa(Class) | ||
| Class.asa(Role) | 16:05 | ||
| audreyt | class F does C {...} indeed copy over instance slots | ||
| and recursively flattens C's inheritance tree | |||
| is viable, but I think a bit too hard to explain | |||
| stevan | hmm | ||
| that does conform more to role-ness | |||
| audreyt | but then "does Point" is not structural | 16:06 | |
| all it's saying is flattening inheritance chain from that point on | |||
| I don't know. I think it makes sense | 16:07 | ||
| but then it wouldn't work across incompatible layouts | |||
| and we're sure that Array and Hash would have different layouts | |||
| stevan | yeah | ||
| markstos_ | What does it mean to "flatten an inheritance chain" ? | ||
| audreyt | as they don't have attribute slots | ||
| stevan | audreyt: are we sure? | ||
| audreyt | markstos_: class C is C2 {} class C2 is C3 {} class D does C {...flatten C/C2/C3...} | 16:08 | |
| stevan | markstos_: to flatten the class, to move all methods/attributes/etc to the same level | ||
| audreyt | stevan: implement Array on p6opaque? | ||
| stevan | as if there is no indirection | ||
| markstos_ | Aha. | ||
| audreyt | stevan: that's very unlikely; I can't even think of a good encoding | ||
| markstos_ | flattening is not something I've seen before. | ||
| audreyt | not even javascript can do that :) | 16:09 | |
| stevan | audreyt: yeah,.. but I have to say that diff instance types is hard | ||
| markstos_ | Are there languages that do use it? | ||
| audreyt | markstos_: right, it's fresh idea :) | ||
| markstos_ | "fresh" but also perhaps "hard to explain" as you said either, because it's new. | ||
|
16:09
hexmode joined
|
|||
| audreyt | I share your concerns. | 16:09 | |
| markstos_ | But sometimes new/fresh is good. | 16:10 | |
| if it's actually better. :) | |||
| stevan | markstos_: we use this technique in Class::C3 actually | ||
| markstos_ | Oh. | ||
| stevan | and if you squint, Perl 5 method caching is exactly this | ||
| markstos_ | Ah. | ||
| stevan | because it stashes aliases in the symbol table | ||
| audreyt | the flattening is weird because for things you do inherit | ||
| then you don't mix them in | |||
| you only mix in things you don't inherit directly | |||
| which is very subtle | 16:11 | ||
| stevan | yeh | ||
| TimToady | actually, when I said "snapshot" I wasn't thinking of inheritance at all. | ||
| markstos_ | As I work on porting CGI::App to Perl6, I have first impressions of the language. A number of things are simpler-- less syntax-- like getting rid of 'self' in a lot of places. But sometimes there is more syntax to learn, and that's where i get more hesistent. I still need to study the difference between 'package', 'class' and 'module' now. | ||
| TimToady | just immutability of the current class | 16:12 | |
| audreyt | TimToady: oh. I misunderstood then. sorry | ||
| TimToady | but it's an interesting idea nonetheless | ||
| stevan | i think it would need to be inheritence as well,.. | ||
| because what if the local class didnt have anything in iti | |||
| audreyt | TimToady: but to mix in inheritance would break roleness | ||
| stevan | then does Foo would mean nothing | ||
| TimToady | A12 speculates that roles can mix in inheritance sneakily already. | 16:13 | |
| markstos_ prepares for juggling performance & | |||
| stevan | hmm,... that would take care of it | 16:14 | |
| mixing in the @ISA | |||
| TimToady | well, we have other containers that are immutable but whose contents aren't. | ||
| and we'd certainly like to have sneaky delegation. | 16:15 | ||
| yes, I'm just this role, but I actually delegate to this other object... | |||
| audreyt | TimToady: in the S12 example | ||
| I mean A12 example | 16:16 | ||
| say I have Friend.greet | |||
| and Dog does Pet | |||
| can Dog.greet "next METHOD" into Friend? | |||
| i.e. is it really inheritance? | |||
| stevan | ouch | ||
| we would have to mixin the inheritence or next METHOD would not work | 16:17 | ||
| TimToady | well, welcome to duck typing. | ||
| stevan | unless we re-write the code | ||
| audreyt | not sure what duck typing has to do with this... | ||
| froh-doh | .oO( is "duck typing" vaguely related to "duct taping"? ) |
16:18 | |
| stevan prefers his duck roasted,.. with some rice noodles | |||
| TimToady | next METHOD is only going to find a method of the same name, but not maybe the same meaning, but that's a red herring, yes. | ||
| stevan doesnt like herring | |||
| no matter what color it is | |||
| maybe mxining in the @ISA chain is not a bad thing | |||
| it will make it more predictable | 16:19 | ||
| audreyt | well, at least we have C3 | ||
| so it won't violate things badly | |||
| stevan | yes | ||
|
16:20
nothingmuch joined
|
|||
| stevan | and as an optimization, maybe we can switch things around | 16:20 | |
| audreyt | so. "does" and "isa" differs only in that "does R" won't put R into your @ISA | ||
| they are otherwise equivalent | |||
| (with the restriction that instantiating a role is forbidden, but that happens elsewhere) | 16:21 | ||
| and you can "isa" a role or "does" a class freely | |||
| stevan | I think isa/does need a certain level of interchangability | 16:22 | |
|
16:22
Psyche^ joined
|
|||
| stevan | what if... | 16:22 | |
| class Foo { has $.bar } class Bar is SomethingWithLongISAChain { } ... class Foo does Bar; | |||
| or rather,.. | |||
| class Bar is SomethingWithLongISAChain { } ... class Foo does Bar; | |||
| ah wait,.. nevermind | |||
| my brain is not working 100% yet | 16:23 | ||
| not enough coffee | |||
| TimToady | my brain is never working 100% yet... | ||
| stevan | I was trying to exploit the unorderedness of role composition | ||
| audreyt | and in both isa/does, you get slots | ||
| TimToady | even with coffee | ||
| stevan | well,.. Moose will start exploring these issues soon | ||
| audreyt | and in both isa/does, you cannot peek at super's slots | ||
| (which is markedly different from otherLanguages) | 16:24 | ||
|
16:24
HXanadu joined
|
|||
| audreyt | and access to super's slots, like everybody else, has to go thru accessor | 16:24 | |
| stevan has to do some errands | |||
| TimToady | which is actually important for delegation-emulating-inheritance. | 16:25 | |
| stevan | but I think we are all thinking on the same page here | ||
| TimToady | across languages, say. | ||
| audreyt | curiously, that solves delegation-based problem of incompatible layouts. | ||
| heh. evidently | |||
| TimToady | we are in violent agreement. | ||
| audreyt | Redundant Array of Insane Designers | 16:26 | |
| stevan | in Moose, you can always do this: $foo->meta->get_attribute('bar')->get_value($foo, 'bar'); | ||
| audreyt | cool. the A12 wording "Roles never inherit" is misleading | ||
| nothingmuch | "always" ? | ||
| stevan | similar to CLOS and the get-slot-value method | ||
| nothingmuch | it took me *FOREVER* to get you to put that in you twit | ||
| audreyt | because it's true upto the fact that "roles can't instansiate" | 16:27 | |
| and doesn't say extra things | |||
| stevan hugs nothingmuch | |||
| nothingmuch | happy birthday, boss | ||
| stevan | thanks :P | ||
| audreyt | but otherwise S12 would much benefit from porting it over :) | ||
| stevan tags off to nothingmuch | |||
| nothingmuch | what does "tags off" mean? | 16:28 | |
| stevan | (tag team lambdam??se) | ||
| TimToady | wrestling? | ||
| stevan | yes | ||
|
16:28
weinig|sleep is now known as weinig,
justatheory joined
|
|||
| stevan | cause I have to go to Home Depot and buy mulch for my birthday :/ | 16:28 | |
| TimToady | I think you're confusing two different Jesses | ||
| audreyt | stevan: happy birthday :) | ||
| stevan | thank you | ||
| TimToady | hippo happo bithutththdi | ||
| obra gets confused | |||
| stevan | Jesse "The Body" and Jesse "The Brain" | 16:29 | |
| :) | |||
| obra | Happy birthday | ||
| stevan | :) | ||
| TimToady | you're what, 19 now? :) | ||
|
16:29
Psyche^ is now known as Patterner
|
|||
| stevan | yeah,.. give or take 14 years | 16:30 | |
| I am one year older than ($Class::MOP::VERSION * 100) ;) | |||
| TimToady | fortunately, years are not objects. | ||
| audreyt | 5-year-old mastermoose | ||
|
16:31
weinig is now known as weinig|coffee
|
|||
| stevan | ok,.. gotta run,.. | 16:31 | |
| stevan hugs #perl6 | |||
| TimToady | thanks | ||
| happy mulch | |||
| gaal | ooh, happy birthday stevan-moose! | 16:36 | |
| TimToady | gaal: did you see my hate-mail about %?CONFIG :) | 16:37 | |
| gaal | TimToady: polluting the global namespace is less noisy than throwing stuff in %?CONFIG? :) </bikeshedding> | ||
| heh | |||
| TimToady | %*CONFIG would be the global namespace... | 16:38 | |
| gaal | as opposed to %?CONFIG, which is the front lobal namespace (of the compiler) | ||
| TimToady | anyway, things that can pretend to be objects with lots of fiddly bits could use to be top level in ? twigildom. | 16:39 | |
| Think how often $^O is used in Perl 5. | 16:40 | ||
| needs to be huffmanly short. | |||
| thought maybe not that short. | |||
| s:2nd/t// | |||
| gaal | grumble %c ::= $?CONFIG grumble | ||
| TimToady | %?::('grumble') | 16:41 | |
| gaal | but one thing that really isn't just the bikeshed color: let's not standardize on version convention for the compilers | 16:42 | |
| TimToady | certainly not. | ||
| we haven't even really decided whether authorities are really part of the version | |||
| use Foo-(1.2-Mike|1.3-Ed) | |||
| I really say really to often. really! | 16:43 | ||
| *too | |||
| gaal | selfraceally | 16:44 | |
| TimToady | I like the :parrot<mumble> notation for that reason. | ||
| though presumably one could get away with :pugs(6.2.12) | 16:45 | ||
| assuming orderedness is preserved. | |||
| which it presumably is with built-in versions | |||
| but problematical with tutti-frutti versioning schemes. | |||
| gaal | nod | 16:46 | |
| TimToady | could have string versions that are savvy about 1.2.3-anything | ||
| before - compares version, after compares string | 16:47 | ||
| gets you alpha and beta in the right order, anyway... | |||
| except it puts those after 1.2.3 | |||
| 1.2.3-alpha < 1.2.3 < 1.2.3+foo | 16:48 | ||
| gaal | funky. | ||
| TimToady | but generally, i think string comparisons would have to be forced in some policy spot | 16:49 | |
| 1.2.3.-2 == alpha | |||
| 1.2.3.-1 == beta | |||
| but that screws up using - to delimit authority. | 16:50 | ||
| maybe - delimiter is bad anyway. | |||
| 1.2.3.-1@JRAND | |||
| OM | |||
| gaal | there's always another code point :/ | ||
| TimToady | heh | 16:51 | |
| 1.2.3.-1×JRANDOM | |||
| wolverian | could we use named instead of positional? | 16:52 | |
| TimToady | 1.2.3.-1<JRANDOM KRANDOM> | ||
| hard to fit into a filesystem. | 16:53 | ||
| wolverian | just use a database :-) | ||
| TimToady | is there a buzzing in the air? | ||
| wolverian | no, it's an echo.. | 16:55 | |
| TimToady | wow, I think "use v6<pugs>" passes the P5 test. | 16:56 | |
| gaal | bbiab... & | ||
| TimToady | and < and > are unlikely to occur in a url. | 16:58 | |
| and - is likely to occur in a random version number from the wide world. | |||
| filenames containing < and > would be a problem though. | 16:59 | ||
| hmm. | |||
|
17:01
markstos_ left
|
|||
| diakopter | use v6^pugs^ | 17:01 | |
| TimToady | on the other hand, we can write funky versions alreayd like | ||
| use Foo-('1.2.3.-1')-JRANDOM | |||
| maybe | |||
| P5 doesn't like ^ | 17:02 | ||
| froh-doh | use v6.pugs ? | 17:03 | |
| TimToady | P5 doesn't like . | ||
| froh-doh | probably because it clashes with v6.2 ? | 17:04 | |
| TimToady | and it only sort of likes <pugs>, since it thinks it's a readline or glob. | ||
| [particle] | use v6'pugs; | 17:08 | |
| mauke | haha | ||
| [particle] | ooh, i've got some mail to respond to... | ||
|
17:09
weinig|coffee is now known as weinig
|
|||
| TimToady | looks like use v6-alpha.pugs; could work | 17:09 | |
| but not v6.pugs, which was the whole point, sigh. | 17:13 | ||
|
17:16
Jedai joined
|
|||
| TimToady | v6-alpha+pugs and v6+pugs seem to both work to P5. | 17:16 | |
| assuming no -w | 17:17 | ||
| -w gets in the way of a lot of possibilities, sigh. | 17:18 | ||
| well, we could still make - part of the version in P6, and use bare v6-alpha in P5. | 17:21 | ||
| that's almost cleaner than using alpha as an authority. | |||
| use Foo-1.2.3.-42.1<foo.bar> still looks kinda good to me. | 17:23 | ||
| can always mangle the < and > for the filename. | 17:24 | ||
| [particle] | and the slashes, and colon | ||
| TimToady | I like the pillness of the authority. | 17:25 | |
| well, I have to go do some archeology in my garage... | 17:27 | ||
| later & | |||
|
17:34
hexmode` joined
|
|||
| svnbot6 | r12176 | audreyt++ | * First cut at proper compile-time role mixin support, based on | 17:56 | |
| r12176 | audreyt++ | discussion on #perl6 about the semantics of "does". | |||
| r12176 | audreyt++ | class C {}; | |||
| r12176 | audreyt++ | class D does C {}; | |||
| r12176 | audreyt++ | D.isa(C); # False | |||
| r12176 | audreyt++ | D.does(C); # True | |||
| r12176 | audreyt++ | Composition works, and overriding role methods should work as well, | |||
| r12176 | audreyt++ | but concrete class/package names is not yet renamed, and role conflicts | |||
| r12176 | audreyt++ | is not yet validated. Still, a step toward the right direction. | |||
|
17:59
hexmode` joined
|
|||
| TimToady | smokin' | 17:59 | |
| diakopter | is there a SVN::Web -like view of the commits? | 18:08 | |
| wolverian | hm, is this supposed to happen on 'perl Makefile.PL': Could not find module `Distribution.Simple' | 18:12 | |
| diakopter | does anyone know if this project has anything like this: svn.webgui.org/svnweb/WebGUI%20SVN...n?rev=2816 | 18:13 | |
| hmmm; if I got svk working on a server, I could host it... | 18:16 | ||
|
18:38
audreyt joined
|
|||
| diakopter | audreyt: are you there | 18:44 | |
|
18:45
khisanth_ joined
18:46
khisanth_ is now known as Khisanth
18:52
robkinyon joined
|
|||
| TimToady | she probably went back to sleep. it's about 4am in Taiwan, give or take an hour | 18:56 | |
| I don't know of anything like webgui. | 18:57 | ||
| froh-doh | does she sleep in such a fractal way? | ||
| TimToady | it varies depending on residual jetlag, i think. | 18:58 | |
| froh-doh thinks about "Fight Club" | 18:59 | ||
| diakopter | TimToady: I meant the SVN::Web view | 19:00 | |
| anyway, I'm working on setting it up on a server | 19:01 | ||
|
19:01
rashakil joined
19:03
rashakil_ joined
19:15
justatheory joined
19:16
lichtkind joined
19:24
TimToady_ joined
19:37
TimToady1 joined
19:47
tup joined
19:57
Corion joined,
Corion left
19:59
cmarcelo left
20:00
asz joined
20:23
chris2 joined
20:55
weinig is now known as weinig|away
21:10
jferrero joined
21:19
amv joined
|
|||
| jferrero is away: Ocupado... ahora vuelvo... | 21:20 | ||
|
21:25
FurnaceBoy joined
|
|||
| jferrero is back (gone 00:17:52) | 21:38 | ||
| froh-doh | I added an implementation for quotemeta, but I'd like some "go ahead" before committing | 21:40 | |
| kane-xs | seen audreyt | 22:01 | |
| jabbot | kane-xs: audreyt was seen 5 hours 30 minutes 48 seconds ago | ||
|
22:05
ayrnieu joined
22:26
froh-doh joined
23:27
miyagawa joined
23:44
dazjorz joined,
dabreegster joined
23:48
dazjorz is now known as iwantkarma,
iwantkarma is now known as dazjorz,
mauke_ joined
23:50
khisanth_ joined
23:51
khisanth_ is now known as Khisanth
23:52
weinig|away is now known as weinig
|
|||