Git Product home page Git Product logo

penf's Introduction

PENF GitHub tag

License License License License

Status CI Status Coverage Status

PENF, Portability Environment for Fortran poor people

A KISS library for exploiting codes portability for modern (2003+) Fortran projects.

  • PENF is a pure Fortran (KISS) library for achieving portable codes for modern Fortran projects;
  • PENF provides many number-to-string and viceversa facilities;
  • PENF is Fortran 2003+ standard compliant;
  • PENF is a Free, Open Source Project.

Table of Contents

Issues

GitHub issues

Compiler Support

Compiler Compiler Compiler Compiler Compiler Compiler

What is PENF?

Fortran is the most popular programming language for scientific computing. With Fortran it is quite simple obtain fast code and manage large multidimensional array. Because Fortran permits the achievement of high performance it is also used on great range of different computer-architectures, and often on the fastest supercomputer in the world. Therefore Fortran programs must be portable: portability means that the code will give the same results on every different computer-architectures. One of the most important goal of the numeric code is to control the numeric error due to finite precision of numerical operations. Fortran uses the IEEE representations. Integers and reals (floating point) are represented with a finite precision. So when the code computes an operation it has a truncation error due to the truncation of the numerical finite representations. For numerical and more in general scientific applications this source of errors must be controlled. The programmer must know which is the precision associated to the code variables. Before the standard Fortran 90/95 there are not any way to select the precision of the numerical variables in a portable fashion.

Modern Fortran standards (2003+) have introduced better support for codes portability. With the possibility to specify a kind parameter for variables, the standard Fortran 90+ makes available useful functions to select the kind precision in a portable parametric way. Using these functions the programmer can accurately control the precision of its own variables in a portable manner.

PENF module provides an effective KISS library to achieve portability and concurrently it provides many tools to handles parametrized numbers.

Go to Top

Main features

The library provides portable kind-parameters and many useful procedures to deal with them:

  • integer and reals parameters for 1,2,4,8,16 bytes-like representations;
  • integer and real formats definitions for all parameters;
  • integer and real minimum maximum representable numbers;
  • number-to-string and string-to-number casting procedures;
  • endianism procedures checking.

Any feature request is welcome.

Go to Top

Copyrights

PENF is an open source project, it is distributed under a multi-licensing system:

Anyone is interest to use, to develop or to contribute to PENF is welcome, feel free to select the license that best matches your soul!

More details can be found on wiki.

Go to Top

Documentation

Besides this README file the PENF documentation is contained into its own wiki. Detailed documentation of the API is contained into the GitHub Pages that can also be created locally by means of ford tool.

A Taste of PENF

To be written.

Go to Top

Project history

See CHANGELOG for the complete list of changes.

a graphical overview of the history and evolution of PENF project

stack

survival

Go to Top

penf's People

Contributors

femparadmin avatar giacrossi avatar jacobwilliams avatar lettleli avatar mardiehl avatar szaghi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

penf's Issues

Wrong name in API documentation

Just noticed that in your FORD project file (and thus the docs on your Github pages) you are still referring to this library as IR_Precision. Thought I'd let you know.

Smallest real representable difference

Hi,

I was using the parameter ZeroR8P for the comparison purpose of two real values. Lately, I updated source files and realized the change in the definition of the parameter. In the previous version of PENF, the definition was,

real(R8P), parameter :: ZeroR8P = nearest(1._R8P, 1._R8P) - nearest(1._R8P,-1._R8P)

and I was using the parameter to compare the reals as

if ( abs( a - b ) < ZeroR8P ) then

However, the latest version is defining the ZeroR8P as,

real(R8P), parameter :: ZeroR8P = 0._R8P

and the comparison fails. I wonder the reason behind this change. Was the previous version causing a bug?

add character kinds

Add parameter kinds for character variables, namely ASCII and UCS4 kinds.

bits string casting of reals

The casting of numbers (integer and real) to bits string is done by B format specifier. This is standard (2003) compliant only for integer, whereas for real this is an Intel Fortran extension! This is known bug that must be fixed in some way. The trick to use transfer function seems to not work correctly. The low-level bits functions must be used...

Backward compatibility

Dear @szaghi !

I use PENF in my own little project. I also use FLAP that is dependent on PENF. I use FoBiS to build project. Recently I decided to update submodules and found out that FLAP doesn't use modules from its dependent version of PENF. It uses modules from my submodule that has been recently updated.

Main problem is that R16P is now surrounded by _R16P macro and FLAP can't see that parameter any more.

My questions are: Why did you decide to surround R16P with a macro? What is the correct way to build project? Adding _R16P macro to the fobos file?

I am assuming that FLAP is not the only example. Most of your projects use PENF..
Thank you!

Customize separator in string conversion procedures

Hi @szaghi ,

in my fork I've added separator, an extra argument, to str_a_* procedures to allow clients to customize how to separate different elements of an array while converting to a string. It's not a great enhancement but i think it will be useful.

For example, I need this because FLAP set procedure needs strings for setting default values. While PENF returns array strings as "1,2,3,..", FLAP needs them in this way "1 2 3 ...".

Several tests fail on PPC: Required regular expression not found

--->  Testing PENF
Executing:  cd "/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_PENF/PENF/work/build" && ctest test 
Test project /opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_PENF/PENF/work/build
        Start   1: penf-doctest-1
  1/110 Test   #1: penf-doctest-1 ...................***Failed  Required regular expression not found. Regex=[1
]  0.02 sec
        Start   2: penf-doctest-2
  2/110 Test   #2: penf-doctest-2 ...................   Passed    0.02 sec
        Start   3: penf-doctest-3
  3/110 Test   #3: penf-doctest-3 ...................   Passed    0.03 sec
        Start   4: penf-doctest-4
  4/110 Test   #4: penf-doctest-4 ...................   Passed    0.02 sec
        Start   5: penf-doctest-5
  5/110 Test   #5: penf-doctest-5 ...................   Passed    0.02 sec
        Start   6: penf-doctest-6
  6/110 Test   #6: penf-doctest-6 ...................   Passed    0.02 sec
        Start   7: penf-doctest-7
  7/110 Test   #7: penf-doctest-7 ...................   Passed    0.02 sec
        Start   8: penf_b_size-doctest-1
  8/110 Test   #8: penf_b_size-doctest-1 ............***Failed  Required regular expression not found. Regex=[128
]  0.02 sec
        Start   9: penf_b_size-doctest-10
  9/110 Test   #9: penf_b_size-doctest-10 ...........   Passed    0.02 sec
        Start  10: penf_b_size-doctest-11
 10/110 Test  #10: penf_b_size-doctest-11 ...........   Passed    0.02 sec
        Start  11: penf_b_size-doctest-12
 11/110 Test  #11: penf_b_size-doctest-12 ...........   Passed    0.02 sec
        Start  12: penf_b_size-doctest-2
 12/110 Test  #12: penf_b_size-doctest-2 ............   Passed    0.02 sec
        Start  13: penf_b_size-doctest-3
 13/110 Test  #13: penf_b_size-doctest-3 ............   Passed    0.02 sec
        Start  14: penf_b_size-doctest-4
 14/110 Test  #14: penf_b_size-doctest-4 ............   Passed    0.02 sec
        Start  15: penf_b_size-doctest-5
 15/110 Test  #15: penf_b_size-doctest-5 ............***Failed  Required regular expression not found. Regex=[16
]  0.02 sec
        Start  16: penf_b_size-doctest-6
 16/110 Test  #16: penf_b_size-doctest-6 ............   Passed    0.02 sec
        Start  17: penf_b_size-doctest-7
 17/110 Test  #17: penf_b_size-doctest-7 ............   Passed    0.02 sec
        Start  18: penf_b_size-doctest-8
 18/110 Test  #18: penf_b_size-doctest-8 ............   Passed    0.02 sec
        Start  19: penf_b_size-doctest-9
 19/110 Test  #19: penf_b_size-doctest-9 ............   Passed    0.02 sec
        Start  20: penf_stringify-doctest-1
 20/110 Test  #20: penf_stringify-doctest-1 .........   Passed    0.02 sec
        Start  21: penf_stringify-doctest-10
 21/110 Test  #21: penf_stringify-doctest-10 ........   Passed    0.02 sec
        Start  22: penf_stringify-doctest-11
 22/110 Test  #22: penf_stringify-doctest-11 ........   Passed    0.02 sec
        Start  23: penf_stringify-doctest-12
 23/110 Test  #23: penf_stringify-doctest-12 ........   Passed    0.02 sec
        Start  24: penf_stringify-doctest-13
 24/110 Test  #24: penf_stringify-doctest-13 ........   Passed    0.02 sec
        Start  25: penf_stringify-doctest-14
 25/110 Test  #25: penf_stringify-doctest-14 ........***Failed  Required regular expression not found. Regex=[-0\.100000000000000000000000000000000E\+0001
]  0.02 sec
        Start  26: penf_stringify-doctest-15
 26/110 Test  #26: penf_stringify-doctest-15 ........***Failed  Required regular expression not found. Regex=[0\.100000000000000000000000000000000E\+0001
]  0.02 sec
        Start  27: penf_stringify-doctest-16
 27/110 Test  #27: penf_stringify-doctest-16 ........   Passed    0.03 sec
        Start  28: penf_stringify-doctest-17
 28/110 Test  #28: penf_stringify-doctest-17 ........   Passed    0.02 sec
        Start  29: penf_stringify-doctest-18
 29/110 Test  #29: penf_stringify-doctest-18 ........   Passed    0.02 sec
        Start  30: penf_stringify-doctest-19
 30/110 Test  #30: penf_stringify-doctest-19 ........   Passed    0.02 sec
        Start  31: penf_stringify-doctest-2
 31/110 Test  #31: penf_stringify-doctest-2 .........   Passed    0.02 sec
        Start  32: penf_stringify-doctest-20
 32/110 Test  #32: penf_stringify-doctest-20 ........   Passed    0.02 sec
        Start  33: penf_stringify-doctest-21
 33/110 Test  #33: penf_stringify-doctest-21 ........   Passed    0.02 sec
        Start  34: penf_stringify-doctest-22
 34/110 Test  #34: penf_stringify-doctest-22 ........   Passed    0.02 sec
        Start  35: penf_stringify-doctest-23
 35/110 Test  #35: penf_stringify-doctest-23 ........   Passed    0.02 sec
        Start  36: penf_stringify-doctest-24
 36/110 Test  #36: penf_stringify-doctest-24 ........   Passed    0.02 sec
        Start  37: penf_stringify-doctest-25
 37/110 Test  #37: penf_stringify-doctest-25 ........   Passed    0.02 sec
        Start  38: penf_stringify-doctest-26
 38/110 Test  #38: penf_stringify-doctest-26 ........   Passed    0.02 sec
        Start  39: penf_stringify-doctest-27
 39/110 Test  #39: penf_stringify-doctest-27 ........   Passed    0.02 sec
        Start  40: penf_stringify-doctest-28
 40/110 Test  #40: penf_stringify-doctest-28 ........   Passed    0.02 sec
        Start  41: penf_stringify-doctest-29
 41/110 Test  #41: penf_stringify-doctest-29 ........   Passed    0.02 sec
        Start  42: penf_stringify-doctest-3
 42/110 Test  #42: penf_stringify-doctest-3 .........   Passed    0.02 sec
        Start  43: penf_stringify-doctest-30
 43/110 Test  #43: penf_stringify-doctest-30 ........   Passed    0.02 sec
        Start  44: penf_stringify-doctest-31
 44/110 Test  #44: penf_stringify-doctest-31 ........   Passed    0.02 sec
        Start  45: penf_stringify-doctest-32
 45/110 Test  #45: penf_stringify-doctest-32 ........***Failed  Required regular expression not found. Regex=[\+0\.100000000000000000000000000000000E\+0001,-0\.200000000000000000000000000000000E\+0001
]  0.02 sec
        Start  46: penf_stringify-doctest-33
 46/110 Test  #46: penf_stringify-doctest-33 ........***Failed  Required regular expression not found. Regex=[0\.100000000000000000000000000000000E\+0001,0\.200000000000000000000000000000000E\+0001
]  0.02 sec
        Start  47: penf_stringify-doctest-34
 47/110 Test  #47: penf_stringify-doctest-34 ........***Failed  Required regular expression not found. Regex=[\+0\.100000000000000000000000000000000E\+0001|-0\.200000000000000000000000000000000E\+0001
]  0.02 sec
        Start  48: penf_stringify-doctest-35
 48/110 Test  #48: penf_stringify-doctest-35 ........***Failed  Required regular expression not found. Regex=[(\+0\.100000000000000000000000000000000E\+0001,-0\.200000000000000000000000000000000E\+0001)
]  0.02 sec
        Start  49: penf_stringify-doctest-36
 49/110 Test  #49: penf_stringify-doctest-36 ........   Passed    0.02 sec
        Start  50: penf_stringify-doctest-37
 50/110 Test  #50: penf_stringify-doctest-37 ........   Passed    0.02 sec
        Start  51: penf_stringify-doctest-38
 51/110 Test  #51: penf_stringify-doctest-38 ........   Passed    0.02 sec
        Start  52: penf_stringify-doctest-39
 52/110 Test  #52: penf_stringify-doctest-39 ........   Passed    0.02 sec
        Start  53: penf_stringify-doctest-4
 53/110 Test  #53: penf_stringify-doctest-4 .........   Passed    0.02 sec
        Start  54: penf_stringify-doctest-40
 54/110 Test  #54: penf_stringify-doctest-40 ........   Passed    0.02 sec
        Start  55: penf_stringify-doctest-41
 55/110 Test  #55: penf_stringify-doctest-41 ........   Passed    0.02 sec
        Start  56: penf_stringify-doctest-42
 56/110 Test  #56: penf_stringify-doctest-42 ........   Passed    0.02 sec
        Start  57: penf_stringify-doctest-43
 57/110 Test  #57: penf_stringify-doctest-43 ........   Passed    0.02 sec
        Start  58: penf_stringify-doctest-44
 58/110 Test  #58: penf_stringify-doctest-44 ........   Passed    0.02 sec
        Start  59: penf_stringify-doctest-45
 59/110 Test  #59: penf_stringify-doctest-45 ........   Passed    0.02 sec
        Start  60: penf_stringify-doctest-46
 60/110 Test  #60: penf_stringify-doctest-46 ........   Passed    0.02 sec
        Start  61: penf_stringify-doctest-47
 61/110 Test  #61: penf_stringify-doctest-47 ........   Passed    0.02 sec
        Start  62: penf_stringify-doctest-48
 62/110 Test  #62: penf_stringify-doctest-48 ........   Passed    0.02 sec
        Start  63: penf_stringify-doctest-49
 63/110 Test  #63: penf_stringify-doctest-49 ........   Passed    0.02 sec
        Start  64: penf_stringify-doctest-5
 64/110 Test  #64: penf_stringify-doctest-5 .........   Passed    0.02 sec
        Start  65: penf_stringify-doctest-50
 65/110 Test  #65: penf_stringify-doctest-50 ........   Passed    0.02 sec
        Start  66: penf_stringify-doctest-51
 66/110 Test  #66: penf_stringify-doctest-51 ........   Passed    0.02 sec
        Start  67: penf_stringify-doctest-52
 67/110 Test  #67: penf_stringify-doctest-52 ........   Passed    0.02 sec
        Start  68: penf_stringify-doctest-53
 68/110 Test  #68: penf_stringify-doctest-53 ........   Passed    0.02 sec
        Start  69: penf_stringify-doctest-54
 69/110 Test  #69: penf_stringify-doctest-54 ........   Passed    0.02 sec
        Start  70: penf_stringify-doctest-55
 70/110 Test  #70: penf_stringify-doctest-55 ........   Passed    0.02 sec
        Start  71: penf_stringify-doctest-56
 71/110 Test  #71: penf_stringify-doctest-56 ........   Passed    0.02 sec
        Start  72: penf_stringify-doctest-57
 72/110 Test  #72: penf_stringify-doctest-57 ........   Passed    0.02 sec
        Start  73: penf_stringify-doctest-58
 73/110 Test  #73: penf_stringify-doctest-58 ........   Passed    0.02 sec
        Start  74: penf_stringify-doctest-59
 74/110 Test  #74: penf_stringify-doctest-59 ........   Passed    0.02 sec
        Start  75: penf_stringify-doctest-6
 75/110 Test  #75: penf_stringify-doctest-6 .........   Passed    0.02 sec
        Start  76: penf_stringify-doctest-60
 76/110 Test  #76: penf_stringify-doctest-60 ........   Passed    0.02 sec
        Start  77: penf_stringify-doctest-61
 77/110 Test  #77: penf_stringify-doctest-61 ........   Passed    0.02 sec
        Start  78: penf_stringify-doctest-62
 78/110 Test  #78: penf_stringify-doctest-62 ........   Passed    0.02 sec
        Start  79: penf_stringify-doctest-63
 79/110 Test  #79: penf_stringify-doctest-63 ........   Passed    0.02 sec
        Start  80: penf_stringify-doctest-64
 80/110 Test  #80: penf_stringify-doctest-64 ........   Passed    0.02 sec
        Start  81: penf_stringify-doctest-65
 81/110 Test  #81: penf_stringify-doctest-65 ........   Passed    0.02 sec
        Start  82: penf_stringify-doctest-66
 82/110 Test  #82: penf_stringify-doctest-66 ........   Passed    0.02 sec
        Start  83: penf_stringify-doctest-67
 83/110 Test  #83: penf_stringify-doctest-67 ........   Passed    0.02 sec
        Start  84: penf_stringify-doctest-68
 84/110 Test  #84: penf_stringify-doctest-68 ........   Passed    0.02 sec
        Start  85: penf_stringify-doctest-69
 85/110 Test  #85: penf_stringify-doctest-69 ........   Passed    0.02 sec
        Start  86: penf_stringify-doctest-7
 86/110 Test  #86: penf_stringify-doctest-7 .........***Failed  Required regular expression not found. Regex=[0\.100000000000000000000000000000000E\+0001
]  0.02 sec
        Start  87: penf_stringify-doctest-70
 87/110 Test  #87: penf_stringify-doctest-70 ........   Passed    0.02 sec
        Start  88: penf_stringify-doctest-71
 88/110 Test  #88: penf_stringify-doctest-71 ........***Failed  Required regular expression not found. Regex=[-0\.100000000000000000000000000000000E\+0001
]  0.02 sec
        Start  89: penf_stringify-doctest-72
 89/110 Test  #89: penf_stringify-doctest-72 ........   Passed    0.02 sec
        Start  90: penf_stringify-doctest-73
 90/110 Test  #90: penf_stringify-doctest-73 ........   Passed    0.02 sec
        Start  91: penf_stringify-doctest-74
 91/110 Test  #91: penf_stringify-doctest-74 ........   Passed    0.02 sec
        Start  92: penf_stringify-doctest-75
 92/110 Test  #92: penf_stringify-doctest-75 ........   Passed    0.02 sec
        Start  93: penf_stringify-doctest-76
 93/110 Test  #93: penf_stringify-doctest-76 ........   Passed    0.02 sec
        Start  94: penf_stringify-doctest-77
 94/110 Test  #94: penf_stringify-doctest-77 ........   Passed    0.02 sec
        Start  95: penf_stringify-doctest-78
 95/110 Test  #95: penf_stringify-doctest-78 ........***Failed  Required regular expression not found. Regex=[0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111100111111
]  0.02 sec
        Start  96: penf_stringify-doctest-79
 96/110 Test  #96: penf_stringify-doctest-79 ........***Failed  Required regular expression not found. Regex=[0000000000000000000000000000000000000000000000001111000000111111
]  0.02 sec
        Start  97: penf_stringify-doctest-8
 97/110 Test  #97: penf_stringify-doctest-8 .........   Passed    0.02 sec
        Start  98: penf_stringify-doctest-80
 98/110 Test  #98: penf_stringify-doctest-80 ........***Failed  Required regular expression not found. Regex=[00000000000000001000000000111111
]  0.02 sec
        Start  99: penf_stringify-doctest-81
 99/110 Test  #99: penf_stringify-doctest-81 ........   Passed    0.02 sec
        Start 100: penf_stringify-doctest-82
100/110 Test #100: penf_stringify-doctest-82 ........   Passed    0.02 sec
        Start 101: penf_stringify-doctest-83
101/110 Test #101: penf_stringify-doctest-83 ........   Passed    0.02 sec
        Start 102: penf_stringify-doctest-84
102/110 Test #102: penf_stringify-doctest-84 ........   Passed    0.02 sec
        Start 103: penf_stringify-doctest-85
103/110 Test #103: penf_stringify-doctest-85 ........***Failed  Required regular expression not found. Regex=[0\.100000000000000000000000000000000E\+0001
]  0.02 sec
        Start 104: penf_stringify-doctest-86
104/110 Test #104: penf_stringify-doctest-86 ........***Failed  Required regular expression not found. Regex=[0\.100000000000000E\+001
]  0.02 sec
        Start 105: penf_stringify-doctest-87
105/110 Test #105: penf_stringify-doctest-87 ........***Failed  Required regular expression not found. Regex=[0\.100000E\+01
]  0.02 sec
        Start 106: penf_stringify-doctest-88
106/110 Test #106: penf_stringify-doctest-88 ........   Passed    0.02 sec
        Start 107: penf_stringify-doctest-89
107/110 Test #107: penf_stringify-doctest-89 ........   Passed    0.02 sec
        Start 108: penf_stringify-doctest-9
108/110 Test #108: penf_stringify-doctest-9 .........   Passed    0.02 sec
        Start 109: penf_stringify-doctest-90
109/110 Test #109: penf_stringify-doctest-90 ........   Passed    0.02 sec
        Start 110: penf_stringify-doctest-91
110/110 Test #110: penf_stringify-doctest-91 ........   Passed    0.02 sec

85% tests passed, 17 tests failed out of 110

Total Test time (real) =   2.61 sec

The following tests FAILED:
	  1 - penf-doctest-1 (Failed)
	  8 - penf_b_size-doctest-1 (Failed)
	 15 - penf_b_size-doctest-5 (Failed)
	 25 - penf_stringify-doctest-14 (Failed)
	 26 - penf_stringify-doctest-15 (Failed)
	 45 - penf_stringify-doctest-32 (Failed)
	 46 - penf_stringify-doctest-33 (Failed)
	 47 - penf_stringify-doctest-34 (Failed)
	 48 - penf_stringify-doctest-35 (Failed)
	 86 - penf_stringify-doctest-7 (Failed)
	 88 - penf_stringify-doctest-71 (Failed)
	 95 - penf_stringify-doctest-78 (Failed)
	 96 - penf_stringify-doctest-79 (Failed)
	 98 - penf_stringify-doctest-80 (Failed)
	103 - penf_stringify-doctest-85 (Failed)
	104 - penf_stringify-doctest-86 (Failed)
	105 - penf_stringify-doctest-87 (Failed)
Errors while running CTest

Complete logs:
PENF_tests.txt
PENF_build_log.txt

PENF not compile as third party library with ifort 17.0.0

When I try to compile PENF as a dependency for WenOOF via a simple fobos file, I obtain the following error:
Compiling src/third_party/PENF/src/lib/penf.F90 serially
src/third_party/PENF/src/lib/penf.F90(1392): error #6405: The same named entity from different modules and/or program units cannot be referenced. [BIT_SIZE]
use penf_b_size, only : bit_size, byte_size
-------------------------^
compilation aborted for src/third_party/PENF/src/lib/penf.F90 (code 1)

The options from the fobos file are the following:
FoBiS.py build -mode shared-intel
Module 'pygooglechart' not found: Gcov graphs disabled
Builder options
Directories
Building directory: "shared"
Compiled-objects .o directory: "shared/obj"
Compiled-objects .mod directory: "shared/mod"
Compiler options
Vendor: "intel"
Compiler command: "ifort"
Module directory switch: "-module"
Compiling flags: "-cpp -c -fpic -assume realloc_lhs -O2"
Linking flags: "-shared -O2"
Preprocessing flags: ""
Coverage: False
Profile: False
PreForM.py used: False
PreForM.py output directory: None
PreForM.py extensions processed: []

Building src/lib/wenoof.f90

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.