Other alternative is to have a `time` macro that would be similar to the 
Unix `time` command. `time/0` would show the execution time of the last 
command, and `time expr` would show the execution time of the given 
expression.

We would loose discoverability, that's true, but we could list `time/0,1` 
in the IEx help (h/0); and we would gain `time expr` which would be easier 
to type, remember, and discover than `:timer.tc`, and could have a more 
human-readable output.

Thoughts?

On Friday, October 18, 2019 at 9:06:39 AM UTC+2, Fernando Tapia Rico wrote:
>
> Long-running commands could print some traces during execution and return 
> a big list of results. If this message is printed in-between, I think it 
> will be harder to spot.
>
> On Friday, October 18, 2019 at 9:00:12 AM UTC+2, José Valim wrote:
>>
>> My suggestion is to show it *before* we show the result, this way I don't 
>> think we need to include the prompt. +1 no some sort of IEx prefix:
>>
>>     iex> long_operation()
>>     [iex] command took 12.1s
>>     %Some.Struct{...]
>>
>>
>>
>> *José Valim*
>> www.plataformatec.com.br
>> Skype: jv.ptec
>> Founder and Director of R&D
>>
>>
>> On Fri, Oct 18, 2019 at 8:55 AM Fernando Tapia Rico <fertap...@gmail.com> 
>> wrote:
>>
>>> One thing I really like about the automatic message is that it is 
>>>> discoverable. The feature is just there. And we have prior art.
>>>
>>>
>>> Agreed.
>>>
>>> And also agree with Ben Wilson on using the `iex` prefix, but I would 
>>> include the number of the prompt. Here is a mockup:
>>>
>>> [image: Screen Shot 2019-10-18 at 08.52.29.png]
>>>
>>>
>>> If anyone wants to play a bit with it (more spaces, other message, time 
>>> inside the prompt, etc), here is the mockup code: 
>>>
>>>
>>> IO.puts("\n\niex(9)> :timer.sleep(32_000)\n" <> IO.ANSI.cyan() <> 
>>> ":ok\n" <> IO.ANSI.reset() <> "iex(9) run in 32 seconds\niex(10)> _\n\n"
>>> )
>>>
>>>
>>>  
>>>
>>> On Friday, October 18, 2019 at 5:22:55 AM UTC+2, Ben Wilson wrote:
>>>>
>>>> I really like this feature idea. Often you don't know or expect that a 
>>>> particular function will take so long, and it's precisely at that point 
>>>> that you go "man, I wish I had timed that". Particularly if the function 
>>>> is 
>>>> doing a side effect, it may be non trivial to try again.
>>>>
>>>> Perhaps if the messaging all happened with the `iex()` prefix it might 
>>>> make more sense where it's coming from?
>>>>
>>>> iex(1)> some_long_fun()
>>>> iex(taking more than 5 seconds ...)
>>>> iex(returned after 15 seconds)
>>>> {:ok, :foo}
>>>> iex(2)>
>>>>
>>>> On Thursday, October 17, 2019 at 8:20:16 PM UTC-4, José Valim wrote:
>>>>>
>>>>> Showing the time every time (and other metadata) would definitely be 
>>>>> too verbose, even inside the prompt. But I understand the origin of the 
>>>>> message being unclear.
>>>>> -- 
>>>>>
>>>>>
>>>>> *José Valim*
>>>>> www.plataformatec.com.br
>>>>> Skype: jv.ptec
>>>>> Founder and Director of R&D
>>>>>
>>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "elixir-lang-core" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to elixir-lang-core+unsubscr...@googlegroups.com.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/elixir-lang-core/c4b48de9-7515-4555-ba61-377af0d0233e%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/elixir-lang-core/c4b48de9-7515-4555-ba61-377af0d0233e%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/3f39c47e-b2ad-40c8-b019-d9605d6fff33%40googlegroups.com.

Reply via email to