Why do you say it's too far fetched? I agree that it shouldn't be the
default, but I don't see any technical issues with the idea.


On 23 May 2014 13:36, Andrea Pagnani <[email protected]> wrote:

> The idea to have a pager that allows for browsing efficiently large data
> structures as proposed by Stefan is great but probably too far fetched.
> Also I agree that having a long output paged by default is not what I
> really need in my everyday data/program debugging. Suppose that
> ``myprog()`` prints a long output on the screen, what I would really fancy
>  would be something like ``myprog()  |> less``  ( the symbol ``|>``  might
> not be the good one though) or  ``tail``, ``head`` which, I do not know for
> windows system, but at least for MAC and Linux are already available. I use
> it quite often the syntax
> command|>less
> and redirects you through ``less`` to the line of julia code  where
> ``command`` is defined. Is there any way to redirect on the fly STDOUT from
> screen to, say less, but on the fly?
>
> Andrea
>
>
>
>
> On Friday, May 23, 2014 11:45:18 AM UTC+2, Tomas Lycken wrote:
>>
>> Personally, I love the way Julia outputs large matrices - some rows from
>> the start, followed by "..." and then some rows from the end. If the matrix
>> is both wide and tall, it's truncated in both directions, but the central
>> point is that it's truncated in the middle, rather than on either end. That
>> lets me quickly inspect the entire thing - if it both starts and ends as I
>> expect, it's probably OK even in the parts that I don't see. If i'm not
>> sure, I can always use some more (or less) fine-tuned command (e.g. @show)
>> to look at the entire thing.
>>
>> The ideal solution to me, would be to do the same thing for all kinds of
>> output: the default way of displaying it would be to truncate it in the
>> middle, and if the user wants something else, they can manually request it.
>> And then, of course, it would be awesome if they could also manually pipe
>> it to something that works just like less, tail or whatever from the native
>> terminal.
>>
>> But I think making long output in the REPL paginated by default is a bad
>> idea - if I type something that results in a large amount of output just
>> because I forgot to add ; at the end, suddenly I have to get out of the
>> paginated output view before I can type my next command. I don't feel like
>> making the "read-eval-print-loop" more like a "read-eval-print-
>> getoutofpaginatedview-loop"...
>>
>> // T
>>
>> On Friday, May 23, 2014 10:06:11 AM UTC+2, Tamas Papp wrote:
>>>
>>> I don't think a pager is the right solution, for the following reasons:
>>>
>>> 1. typing directly in to the REPL running in a terminal is not an
>>> efficient way to program anything nontrivial, most users would use an
>>> IDE (incl Emacs) that would allow scrolling and inspection of a value,
>>>
>>> 2. how many elements to print from large arrays etc could be controlled
>>> by something like Common Lisp's *PRINT-LENGTH*, eg see
>>> http://clhs.lisp.se/Body/v_pr_lev.htm (sorry if this already exists in
>>> Julia, could not find it).
>>>
>>> Best,
>>>
>>> Tamas
>>>
>>> On Thu, May 22 2014, Stefan Karpinski <[email protected]> wrote:
>>>
>>> > Now that we have native terminal support, it would be a reasonable
>>> project
>>> > to write a pager in Julia. Why write our own pager (you ask)? Because
>>> it
>>> > could allow you to do things like efficiently page around a huge array
>>> > without having to print the whole thing. You could, e.g., instantly
>>> page to
>>> > the bottom right of a massive, distributed array, without any lag at
>>> all.
>>> > Of course, the thing is you want to use shared infrastructure for
>>> doing
>>> > this kind of data exploration in the terminal, IJulia, and maybe your
>>> > editor. But the pager part could be pretty decoupled from that.
>>> >
>>> >
>>> > On Thu, May 22, 2014 at 3:30 PM, Kevin Squire <[email protected]>wrote:
>>>
>>> >
>>> >> Thanks!
>>> >>
>>> >>
>>> >> On Thursday, May 22, 2014 11:52:12 AM UTC-7, Bob Nnamtrop wrote:
>>> >>
>>> >>> OK done. See https://github.com/JuliaLang/julia/issues/6921
>>> >>>
>>> >>>
>>> >>> On Thu, May 22, 2014 at 12:20 PM, Kevin Squire 
>>> >>> <[email protected]>wrote:
>>>
>>> >>>
>>> >>>> I agree that that would be nice.  Would you be willing to open up
>>> an
>>> >>>> issue for this?
>>> >>>>
>>> >>>>
>>> >>>> On Thu, May 22, 2014 at 11:04 AM, Bob Nnamtrop 
>>> >>>> <[email protected]>wrote:
>>>
>>> >>>>
>>> >>>>> I often find myself wishing for a pager in the repl when outputing
>>> >>>>> large amount of output. I see that there is a Base.less but it is
>>> only used
>>> >>>>> on files and not for outputting other stuff in the repl. In fact,
>>> it would
>>> >>>>> be great to have support for less, head, and tail like
>>> functionality for
>>> >>>>> looking at arrays, hashes, etc. Thus to be able to do:
>>> >>>>>
>>> >>>>> arr |> less
>>> >>>>> or
>>> >>>>> less(arr)
>>> >>>>> or
>>> >>>>> arr |> tail
>>> >>>>>
>>> >>>>> In addition, I think having the output of show() automatically go
>>> >>>>> through less if it longer that one page would be great. I hate
>>> seeing 100's
>>> >>>>> of pages of output fly by when, e.g., a huge hash gets "shown" at
>>> the
>>> >>>>> prompt (I just cannot seem to get in the habit of typing the ; at
>>> the right
>>> >>>>> time). This behavior could be configurable of course.
>>> >>>>>
>>> >>>>> Bob
>>> >>>>>
>>> >>>>
>>> >>>>
>>> >>>
>>>
>>>

Reply via email to