[libre-riscv-dev] development workflow

Aleksandar Kostovic alexandar.kostovic at gmail.com
Sun Feb 17 16:01:28 GMT 2019


Wow, that a lot of stuff going on. I like the look. Also which OS are you
using? Looks to me like some kind of *ubuntu 18.04 cuz GCC 7.3.0 is default
on 18.04 and apt package manager. Maybe a custom DE? I dig it.

Mine setup is 1080p laptop screen and I usually have only one app taking up
the screen. Look at attached screenshot. Its Sublime 3. I just love it. VIM
is not what i am most efficient with right now, but i force myself to use
it whenever i write Verilog or C++.

My OS is PopOS 18.04 as it is basicly Ubuntu gnome with MUCH better UI. It
is tons prettier than standard Ubuntu GNOME but being it has same core it
is exactly what i need. Has any package i could possibly want.

On Sat, Feb 16, 2019 at 9:00 PM Luke Kenneth Casson Leighton <lkcl at lkcl.net>
wrote:

> btw aleksander, i thought perhaps the attached screenshot might give
> you some insight into how i work so fast.  i've been buying
> increasingly higher-resolution laptops over the past 20 years, this
> one is 3200x1800 and i use *all* of it, to maximum impact.
>
> the reason i'm writing this is because when i went to work for an
> unethical company with "top developers" i was shocked to find how
> prevalent it has become to dominate the entire screen with a single
> editor window - this on screens of size 24 inches and above with
> resolutions of 4000 x 1800 pixels - with the ENTIRE right hand side
> *and the middle* of that editor window entirely blank and utterly
> wasted.
>
> the reason why i have such a high resolution laptop is because i feel
> a need to get as much information on-screen simultaneously as i can
> possibly manage (i then run 24 virtual desktops, in a 6x4 grid
> pattern, so that i can switch "working contexts" without shutting
> anything down).
>
> so in this screenshot, that's ten 80x60 xterms, it's "only" 10 because
> i've put gtkwave in the bottom right corner @ around 1200x700 pixels
> in size.  yes, really, 5 out of the top 6 xterms contain *relevant*
> information, they are:
>
> * fpbase.py - the base class i cut out of the add.py file, earlier today
> * nmigen_div_experiment.py - the div class i worked on this evening.
> * test_div.py - the unit test file for the div.py file.
> * divider.v - jon dawson's original verilog.
> * a "diff -uwbB adder.v divider.v > /tmp/f" which i then opened up with vim
>
> so those five editor windows give me *simultaneous* side-by-side
> access to all the information i need [none of this "full screen let's
> open one file at a time, hooray" crap]
>
> here's the justification for why all those files are open:
>
> it's absolutely essential to have the fpbase.py open *at the same
> time* as the div.py file... because otherwise, how am i going to know
> what the function being called actually does?  i need to know the
> contents of the function.  i might actually need to *add* a function
> to the base file.  i might need to *correct* that function.  why would
> i close the frickin files to do that, when i *know* i will need to
> open it 15-30 seconds later??
>
> the unit test file is open next to the div.py file, because, duh, i
> want to add unit tests and then check the results.  i don't want to
> *close* the unit test file just because it was edited, that would be
> silly: it would be a waste of my time, requiring extra commands to be
> typed.
>
> divider.v is open because i can do a visual SIDE-BY-SIDE comparison of
> the div.py with the divider.v.
>
> the diff file from adder.v and divider.v is open because i originally
> made div.py a copy of add.py, and the diff of the *VERILOG* files
> tells me where i should be focussing attention to make changes on the
> PYTHON files.
>
> specifically: any parts of the adder.v and divider.v that are
> identical tells me that i do *NOT* need to make *ANY* changes to the
> corresponding div.py PYTHON file.
>
>
> in addition, in the bottom left corner, i have some of nmigen edited
> and open, because i am finding that i often need to refer to the
> actual source code, particularly to check what arguments some of
> nmigen's classes take.
>
> next to that window, you can see evidence that i recently installed
> yosys :)   next to _that_ you can see i had to apt-get install
> libffi-dev (one of yosys's dependencies).
>
> finally, i decided to open fmul.py just... because :)  so in that
> window, i can help you out with code review... *without* losing any of
> the context in the 5 windows above.
>
> i also use the trick of *not* exiting editors, i *background* them.
> this is the list of jobs in the window in which test_div.py is open:
>
> lkcl at fizzy:~/src/libreriscv/ieee754fpu/src/add$ jobs
> [1]   Stopped                 vi s_addMagsF32.c  (wd:
> ~/src/libreriscv/ieee754fpu/berkeley-softfloat-3/source)
> [2]+  Stopped                 vi f.v
> [3]   Stopped                 vi test_add.py
> [5]   Stopped                 vi pipeline.py
> [6]   Stopped                 vi pipeline_example.py
> [7]   Stopped                 vi README.md  (wd:
> ~/src/libreriscv/ieee754fpu)
> [8]-  Stopped                 vi test_div.py
>
> f.v is the output from running the nmigen-to-verilog command.
> test_add.py is open in case i want to go back to adding some more add
> unit tests.  i developed the pipeline class in the same window, and
> also edited the README.md and added some notes, and s_addMagsF32.c i
> left open, from conversations we had last week.  it proved useful to
> keep it open as it helped me to determine what the canonical
> representation for INF is, and other things.
>
> it's quite involved, and it's absolute hell to re-establish if ever
> the laptop crashes... and here's why:
>
> $ ps auxw | grep "vi " | wc
>     451    5418   38670
>
> yes, really, on this laptop, i have *451* vim sessions open, the
> majority of them backgrounded.  many of those are still open from work
> done on spike-sv, from several months ago: uptime is currently 156
> days (wheww).
>
> yes i've had people look over my shoulder and their eyes pop out :)
> it's not for everyone, this approach, and yes it's taken 20 years to
> refine.  just some food for thought :)
>
> l.
> _______________________________________________
> libre-riscv-dev mailing list
> libre-riscv-dev at lists.libre-riscv.org
> http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screenshot from 2019-02-17 16-53-45.png
Type: image/png
Size: 191575 bytes
Desc: not available
URL: <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/attachments/20190217/fa2b1ecf/attachment-0001.png>


More information about the libre-riscv-dev mailing list