szaghi / forbear Goto Github PK
View Code? Open in Web Editor NEWFortran (progress) B(e)ar envinronment
Fortran (progress) B(e)ar envinronment
I've tried to compile this library with AMD's aocc flang
but I'm having the following error:
F90-F-0000-Internal compiler error. no type conversion available 0 (build/dependencies/forbear/src/lib/forbear_bar_object.F90: 294)
F90/x86-64 Flang - 1.5 2017-05-01: compilation aborted
The shown line (294) is just the end of a subroutine so it is not the actual error.
I'm not in any hurry for running my codes with flang
, but just wanted you to know just in case :)
In a long run (7 minutes), instead of one progress bar, 12 appear
Actual code:
call bar%initialize(filled_char_string='㊂', empty_char_string='●',&
suffix_string='| ', add_progress_percent=.true.,prefix_string='Progress |',&
scale_bar_color_fg='blue', scale_bar_style='underline_on', spinner_string='( ● )')
Since there haven't been any activity in years maybe this issue won't have much impact. But this seems like a nice project worth reliving!
For starters I recommend making it fpm-compatible (https://fpm.fortran-lang.org/) so it's easily accessible for other projects. A bit of promotion on https://fortran-lang.discourse.group/ could help into getting collaborators too :)
When Max_value is higher than 99 the bar only shows ***** instead of the actual number
Actual code:
lt1 = 100
call bar%initialize(filled_char_string='+', prefix_string='Progress |',&
suffix_string='| ', add_progress_percent=.true.,&
min_value=real(1,kind=8), max_value=real(lt1, kind=8),&
add_progress_speed=.true., progress_speed_color_fg='green',&
add_date_time=.true., date_time_color_fg='magenta', add_scale_bar=.true.,&
scale_bar_color_fg='blue', scale_bar_style='underline_on')
Projects with awesome bars/spinners from which take inspiration:
Dear Stefano,
at first, many thanks for such nice fortran enhancement )
And to the question. From a practical point of view I would combine multiple (in that case forbear_x + FACE) modules into one single module file for such sort of utility. Really, it would be my first step if I consider to include it into my projects... It also doesn't make sense (IMHO) to create a library for such small things. (Sure, I know that you are using fobis, but unfortunately, some developers are forced to stay with an old good make because there are projects where 2 and more languages are used and fortran is only one among them... )
Please ignore this completely, if it is important for you to have these multiple modules during development, or you intend to create some extended library full of such fancy fortran things)
Hi Stefano,
Very cool project!
I noticed you were interested in adding a spinner (in the README.md TODO list) and I was thinking it would be very nice to have ISO 10646 character support, then you can have fancy characters in your spinners and progress bars like this:
It's a bit of a pain though, because you may need to detect if ISO 10646 support is available on the "system" (compiler + machine) and then create overloaded interface wrappers that will accept ASCII, and convert to ISO 10646 characters and pass them to the routines. (Or you could just force everyone to pass in ISO 10646 chars but that may not be practical.)
Here is some code to declare an ISO 10646 variable:
integer, parameter :: ucs4 = selected_char_kind('ISO_10646')
character(*, ucs4), intent(out) :: string
See also:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.