yeah, sorry.  i realised i'd missed len=10 just after i posted and tried to 
delete, but apparently wasn't quick enough.  andrew

On Wednesday, 26 February 2014 21:37:24 UTC-3, Leah Hanson wrote:
>
> If "onlyleaves=true", then only results from concrete types are 
> considered. By default, "onlyleaves=false", so all subtypes/descendants are 
> included. So, "onlyleaves=true" considers a subset of descendants.
>
> The resulting list of functions would not change if all methods happened 
> to be implemented only on the concrete types. Also, the list is the lim=10 
> most popular functions, so onlyleaves=true does not need to be a subset of 
> onlyleaves=false: the top ten only considering the concrete types might be 
> entirely different from the top ten considering all descendent types.
>
> Does this make it clearer?
>
> -- Leah
>
>
> On Wed, Feb 26, 2014 at 4:11 PM, andrew cooke <[email protected]<javascript:>
> > wrote:
>
>>
>> hang on...  what does onlyleaves do?  when true should the results be a 
>> subset of the the results when it's false?  they are not, in the examples 
>> in the doc.  :o(
>>
>>
>> On Wednesday, 26 February 2014 19:25:06 UTC-3, andrew cooke wrote:
>>>
>>> this is great.  from just looking at the example in the docs i can see 
>>> i've missed a couple of methods!  thanks.
>>>
>>> On Wednesday, 26 February 2014 15:54:07 UTC-3, Leah Hanson wrote:
>>>>
>>>> The "% coverage" part is done. You can see the documentation at 
>>>> https://github.com/astrieanna/TypeCheck.jl#
>>>> methodswithdescendantstdatatypeonlyleavesboolfalselimint10 (anchor in 
>>>> the README). Please try it out and let me know whether it's helpful. (Note 
>>>> that abstract types are  included by default; using onlyleaves=true to get 
>>>> your requested behavior.)
>>>>
>>>> Usage statistics are definitely harder, but only because finding uses 
>>>> of a function in general is harder. I'll think about that a bit more; 
>>>> check_method_calls might have some of the needed infrastructure of that.
>>>>
>>>> Comparing types could be accomplished with a wrapper on the new 
>>>> methodswithdescendants function; I can add that.
>>>>
>>>> -- Leah
>>>>
>>>>
>>>> On Tue, Feb 25, 2014 at 4:26 PM, andrew cooke <[email protected]>wrote:
>>>>
>>>>>
>>>>> sweet.  i'd like to see something like "% coverage". for Number, for 
>>>>> example, what % of concrete types have abs() defined?
>>>>>
>>>>> another useful statistic, which might not be possible, is across how 
>>>>> many modules is a function used - for example, which operation on Number 
>>>>> occurs in most modules?  which are used only in one module?
>>>>>
>>>>> it would also be nice if you could compare types - what functions does 
>>>>> Integer (or sub types) have, that my type does not?
>>>>>
>>>>> and ponies!
>>>>>
>>>>> cheers, andrew
>>>>>
>>>>> ps i just looked at TypeCheck.  check_loop_types is going to be sooo 
>>>>> useful....
>>>>>
>>>>>
>>>>>
>>>>> On Tuesday, 25 February 2014 20:13:07 UTC-3, Leah Hanson wrote:
>>>>>
>>>>>> I'm planning to add a "which methods are defined for subtypes of this 
>>>>>> type" function to TypeCheck.jl this week. If there's any specific 
>>>>>> behavior 
>>>>>> you want it to have, let me know. :)
>>>>>>
>>>>>> -- Leah
>>>>>>
>>>>>>
>>>>>> On Tue, Feb 25, 2014 at 2:52 PM, David Moon <[email protected]>wrote:
>>>>>>
>>>>>>> On Tuesday, February 25, 2014 7:14:37 AM UTC-5, David Moon wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> The advantage of making it an explicit concept in the language, 
>>>>>>>> rather than just defining a method that signals an error, is that it 
>>>>>>>> can be 
>>>>>>>> checked at compile time.
>>>>>>>>
>>>>>>>
>>>>>>> In Julia, compile time is load time.  Specifically, after evaluating 
>>>>>>> a top-level expression (which may have loaded a whole lot of files) 
>>>>>>> check 
>>>>>>> each newly defined datatype or bitstype to see if there are any 
>>>>>>> required 
>>>>>>> methods that involve that type or its supertypes.  If so, check if an 
>>>>>>> instance of the newly defined type would have all the required methods 
>>>>>>> applicable to it in the appropriate argument position.
>>>>>>>
>>>>>>
>>>>>>
>>>>
>

Reply via email to