Coder Social home page Coder Social logo

parafeed's Introduction

parafeed

A library for an embedded user interface designed for ease of use for the programmer as well as the end-user. It embeds a shell in the application which can be configured for an interactive session or a non-interactive command line interface. The shell can be customized via command-line arguments or via environment variables. The user can access the shell via simple arg=value1,value2,... command-line arguments (useful when writing pipelines). In an interactive session, the list of parameters are displayed as a list of arg=<Value(s)> on the screen (see examples) and the user can set/reset/save/load/edit parameter values (see User Commands). Command line editing, min-matching, TABBED completion, parameter hiding/exposing based on the value of other parameter is also supported (see the full user manual).

Build System(s)

parafeed project can be built with the cmake tool. Alternatively, it can also be built directly using the hand-written makefiles.

CMake-based build system requires cmake version 3 or later. To build, execute the cmake command in the top-most directory. This will build the required makefiles. Issuing the make command, also in the root directory, should build the parafeed package.

While the hand-written makefiles have been tested with make version 3 only, they do not depend on a specific version of make. These makefiles are in the code/nocmake_makefiles directory. Using the command cd code; make -f nocmake_makefiles/makefile should build the parafeed project.

Successfully building and linking the test program code/tstcpp ensures that all libraries required by client codes are ready. For now, copy all code/libparafeed.a, code/*.h and code/calc/*.h files to the required location for linking your application.

Interfaces

The library libparafeed.a contains .o files from three independent libraries: libsh.a, libshccl.a and libcalc.a. These can be built and linked-to separately as well in the order libshccl.a libsh.a libcalc.a. For use in applications written in C and C++, libparafeed.a is sufficient.

While at this point the package is primarily meant for use in applications written in the C++ and C languages, code for FORTRAN interface exists and was used in the past. For use with FORTRAN, libshfcl.a is required instead of libshccl.a. However, this interface has not been used for a long time and may be in disrepair. If you do find the need for the FORTRAN interface and are not able to build libshfcl.a, please contact the authors.

Note that the C and FORTRAN interfaces have limitations. In particular, context based exposing/hiding of parameters is available only via the C++ interface. C++ interface can however be used in most C programs if they can be complied with a C++ compiler.

A more detailed document describing the API is under preparation. Till then, ask for help from the authors.

parafeed's People

Stargazers

 avatar

Watchers

 avatar

parafeed's Issues

Precedence for keywords supplied via commandline

clCmdLineFirst(bool) function is supposed to control the precedence for keyword setting. E.g. with clCmdLineFirst(false), commandline keyword-setting should take precedence over .def file settings. However currently, the setting for the keywords in the .def file takes precedence over the keyword setting supplied via the commandline.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.