Skip to content

Commit 658f1ff

Browse files
Merge pull request #293 from Nelson-numerical-software/mex
C MEX API
2 parents 73e2ef0 + f209a6e commit 658f1ff

File tree

292 files changed

+8086
-638
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

292 files changed

+8086
-638
lines changed

.travis.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ before_install:
124124
brew unlink libffi;
125125
brew install libffi;
126126
brew unlink libffi;
127-
brew link --force libffi;
127+
brew link libffi --force;
128128
brew uninstall icu4c;
129129
brew install icu4c;
130130
brew unlink icu4c;
@@ -134,7 +134,9 @@ before_install:
134134
brew install pkg-config;
135135
brew install pkgconfig;
136136
brew install gettext;
137-
brew link --force gettext;
137+
brew link gettext --force;
138+
echo 'export PATH="/usr/local/opt/gettext/bin:$PATH"' >> ~/.zshrc;
139+
source ~/.zshrc;
138140
brew install boost;
139141
brew install libxml2;
140142
brew install cmake;
@@ -145,6 +147,7 @@ before_install:
145147
brew install taglib;
146148
brew install libgit2;
147149
brew install hdf5;
150+
brew install libmatio;
148151
brew install eigen;
149152
brew install libomp;
150153
fi
@@ -153,7 +156,8 @@ install:
153156
- if [ `uname` = "Linux" ]; then git clone https://github.com/eigenteam/eigen-git-mirror /tmp/eigen && mkdir /tmp/eigen-build && cd /tmp/eigen && git checkout 3.3.7 && cd - && cd /tmp/eigen-build && cmake . /tmp/eigen && make -j4 && sudo make install && cd -; fi
154157
- if [ `uname` = "Linux" ]; then git clone https://github.com/live-clones/hdf5.git /tmp/hdf5-1_10_5 && cd /tmp/hdf5-1_10_5 && git checkout hdf5-1_10_5 && ./configure --quiet --prefix=/usr/local --enable-shared --disable-deprecated-symbols --disable-hl --disable-strict-format-checks --disable-memory-alloc-sanity-check --disable-instrument --disable-parallel --disable-trace --disable-asserts --with-pic --with-default-api-version=v110 CFLAGS="-w" && sudo make install -C src; fi
155158
- if [ `uname` = "Linux" ]; then git clone https://github.com/tbeu/matio /tmp/matio && cd /tmp/matio && git checkout v1.5.16 && cd /tmp/matio && ./autogen.sh && ./configure --enable-shared --enable-mat73=yes --enable-extended-sparse=no --with-pic --with-hdf5=/usr/local && make && sudo make install; fi
156-
- if [ `uname` = "Darwin" ]; then git clone https://github.com/tbeu/matio /tmp/matio && cd /tmp/matio && git checkout master && cd /tmp/matio && ./autogen.sh && ./configure --enable-shared --enable-mat73=yes --enable-extended-sparse=no --with-pic --with-hdf5=/usr/local/Cellar/hdf5/1.12.0/ && make && sudo make install; fi
159+
- if [ `uname` = "Darwin" ]; then git clone https://github.com/live-clones/hdf5.git /tmp/hdf5-1_10_5 && cd /tmp/hdf5-1_10_5 && git checkout hdf5-1_10_5 && ./configure --quiet --prefix=/usr/local --enable-shared --disable-deprecated-symbols --disable-hl --disable-strict-format-checks --disable-memory-alloc-sanity-check --disable-instrument --disable-parallel --disable-trace --disable-asserts --with-pic --with-default-api-version=v110 CFLAGS="-w" && sudo make install -C src; fi
160+
- if [ `uname` = "Darwin" ]; then git clone https://github.com/tbeu/matio /tmp/matio && cd /tmp/matio && git checkout v1.5.16 && cd /tmp/matio && ./autogen.sh && ./configure --enable-shared --enable-mat73=yes --enable-extended-sparse=no --with-pic --with-hdf5=/usr/local && make && sudo make install; fi
157161
- if [ `uname` = "Darwin" ]; then cd ~; git clone https://github.com/Nelson-numerical-software/slicot_f2c.git; fi
158162

159163
before_script:

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,25 @@
1+
# 0.4.4 (2020-04-29)
2+
3+
* lookandfeel builtin: default current application look and feel.
4+
5+
* clear builtin extended to clear mex functions.
6+
7+
* mex function used to build MEX files.
8+
9+
* [IN PROGRESS] MEX C API allows to access Nelson, GNU Octave and commercial software functions.
10+
11+
documentation and tests will be extended in next version.
12+
13+
Feedback and external tests are welcome.
14+
15+
Compilation:
16+
------------
17+
18+
* MacOs X Catalina fully working.
19+
20+
* Ubuntu 20.04 LTS supported.
21+
22+
123
# 0.4.3 (2020-03-30)
224

325
* mean builtin: Mean elements of an array with nanflag and 'all' support.

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ set(CMAKE_INSTALL_PREFIX "$ENV{HOME}")
3333
#==============================================================================
3434
set (Nelson_VERSION_MAJOR_DEFAULT 0)
3535
set (Nelson_VERSION_MINOR_DEFAULT 4)
36-
set (Nelson_VERSION_MAINTENANCE_DEFAULT 3)
36+
set (Nelson_VERSION_MAINTENANCE_DEFAULT 4)
3737
set (Nelson_VERSION_BUILD_DEFAULT 0)
3838
#==============================================================================
3939
if(DEFINED ENV{NELSON_VERSION_MAJOR})

NelSon.sln

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio 15
4-
VisualStudioVersion = 15.0.27130.2010
3+
# Visual Studio Version 16
4+
VisualStudioVersion = 16.0.29728.190
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NelSon-gui", "modules\main\nelson_gui\NelSon-gui.vcxproj", "{F34BD496-D9B3-4C25-A9E9-C91EB3E35C12}"
77
ProjectSection(ProjectDependencies) = postProject
@@ -257,6 +257,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
257257
modules\modules.nls.in = modules\modules.nls.in
258258
modules\modules.nls.vc = modules\modules.nls.vc
259259
tools\innosetup\Nelson.iss = tools\innosetup\Nelson.iss
260+
modules\mex\src\c\nlsMex.vcxproj = modules\mex\src\c\nlsMex.vcxproj
260261
etc\startup.nls = etc\startup.nls
261262
EndProjectSection
262263
EndProject
@@ -404,6 +405,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nlsWebtools", "modules\webt
404405
EndProject
405406
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nlsWebtools_builtin", "modules\webtools\builtin\c\nlsWebtools_builtin.vcxproj", "{9CAC9DB7-E5FF-40F6-BB14-1A64A7A059B6}"
406407
EndProject
408+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nlsMex", "modules\mex\src\c\nlsMex.vcxproj", "{A3EEB626-83DB-426D-B483-37A478EE8166}"
409+
EndProject
407410
Global
408411
GlobalSection(SolutionConfigurationPlatforms) = preSolution
409412
Debug|Win32 = Debug|Win32
@@ -1384,6 +1387,14 @@ Global
13841387
{9CAC9DB7-E5FF-40F6-BB14-1A64A7A059B6}.Release|Win32.Build.0 = Release|Win32
13851388
{9CAC9DB7-E5FF-40F6-BB14-1A64A7A059B6}.Release|x64.ActiveCfg = Release|x64
13861389
{9CAC9DB7-E5FF-40F6-BB14-1A64A7A059B6}.Release|x64.Build.0 = Release|x64
1390+
{A3EEB626-83DB-426D-B483-37A478EE8166}.Debug|Win32.ActiveCfg = Debug|Win32
1391+
{A3EEB626-83DB-426D-B483-37A478EE8166}.Debug|Win32.Build.0 = Debug|Win32
1392+
{A3EEB626-83DB-426D-B483-37A478EE8166}.Debug|x64.ActiveCfg = Debug|x64
1393+
{A3EEB626-83DB-426D-B483-37A478EE8166}.Debug|x64.Build.0 = Debug|x64
1394+
{A3EEB626-83DB-426D-B483-37A478EE8166}.Release|Win32.ActiveCfg = Release|Win32
1395+
{A3EEB626-83DB-426D-B483-37A478EE8166}.Release|Win32.Build.0 = Release|Win32
1396+
{A3EEB626-83DB-426D-B483-37A478EE8166}.Release|x64.ActiveCfg = Release|x64
1397+
{A3EEB626-83DB-426D-B483-37A478EE8166}.Release|x64.Build.0 = Release|x64
13871398
EndGlobalSection
13881399
GlobalSection(SolutionProperties) = preSolution
13891400
HideSolutionNode = FALSE

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ these own data types and operations on these data types by using overload.
6464

6565
- Interfacing C/C++ or Fortran with Nelson (build and load external code on the fly).
6666

67+
- MEX C API compatibility.
68+
6769
- RESTful API web service.
6870

6971
- The QML engine enables nelson programs to display and manipulate graphical content using Qt's QML framework.
@@ -136,6 +138,7 @@ The systems listed here without CI or binaries are known to build and operate, b
136138
| Windows 7+ | x86-64 (64-bit) |||
137139
| | i686 (32-bit) |||
138140
| MacOS 10.10+ | x86-64 (64-bit) || |
141+
| Ubuntu 20.04 | x86-64 (64-bit) | | |
139142
| Ubuntu 18.04 | x86-64 (64-bit) || |
140143
| Ubuntu 16.04 | x86-64 (64-bit) || |
141144
| Debian 10 | x86-64 (64-bit) || |

ROADMAP.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Please feel free to file issues on this repository if you have questions, concer
2424
- MAT File I/O module (DONE v0.3.3),
2525
- HDF5 used as default data file format (.nh5) (DONE v0.3.2),
2626
- Profiling and Coverage Tools for Nelson's language (DONE v0.3.4),
27-
- Mex module,
27+
- Mex module (Part 1 - v0.4.4),
2828
- completion,
2929
- graphics output,
3030
- some basic openCV functions,

appveyor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: 0.4.3.{build}
1+
version: 0.4.4.{build}
22
image: Visual Studio 2019
33

44
environment:

modules/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ matio
8585
profiler
8686
file_archiver
8787
webtools
88+
mex
8889
)
8990
LIST(APPEND moduleslist main)
9091
#==============================================================================

modules/api_nelson/src/c/resources.rc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ END
4848
//
4949

5050
VS_VERSION_INFO VERSIONINFO
51-
FILEVERSION 0,4,3,0
52-
PRODUCTVERSION 0,4,3,0
51+
FILEVERSION 0,4,4,0
52+
PRODUCTVERSION 0,4,4,0
5353
FILEFLAGSMASK 0x17L
5454
#ifdef _DEBUG
5555
FILEFLAGS 0x1L
@@ -68,8 +68,8 @@ BEGIN
6868
VALUE "InternalName", "api_nelson"
6969
VALUE "OriginalFilename", "libnlsapi_nelson.dll"
7070
VALUE "ProductName", "Nelson (api_nelson)"
71-
VALUE "ProductVersion", "0,4,3,0"
72-
VALUE "FileVersion", "0,4,3,0"
71+
VALUE "ProductVersion", "0,4,4,0"
72+
VALUE "FileVersion", "0,4,4,0"
7373
VALUE "LegalCopyright", "Nelson Copyright (C) 2016-present"
7474
VALUE "Comments", "All rights reserved."
7575
VALUE "CompanyName", "Allan CORNET"

modules/assert_functions/builtin/c/resources.rc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ END
4848
//
4949

5050
VS_VERSION_INFO VERSIONINFO
51-
FILEVERSION 0,4,3,0
52-
PRODUCTVERSION 0,4,3,0
51+
FILEVERSION 0,4,4,0
52+
PRODUCTVERSION 0,4,4,0
5353
FILEFLAGSMASK 0x17L
5454
#ifdef _DEBUG
5555
FILEFLAGS 0x1L
@@ -68,8 +68,8 @@ BEGIN
6868
VALUE "InternalName", "assert_functions_builtin"
6969
VALUE "OriginalFilename", "libnlsassert_functions_builtin.dll"
7070
VALUE "ProductName", "Nelson (assert_functions_builtin)"
71-
VALUE "ProductVersion", "0,4,3,0"
72-
VALUE "FileVersion", "0,4,3,0"
71+
VALUE "ProductVersion", "0,4,4,0"
72+
VALUE "FileVersion", "0,4,4,0"
7373
VALUE "LegalCopyright", "Nelson Copyright (C) 2016-present"
7474
VALUE "Comments", "All rights reserved."
7575
VALUE "CompanyName", "Allan CORNET"

0 commit comments

Comments
 (0)