Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
9be49bc
WIP: switching to dell laptop.
highperformancecoder Aug 30, 2026
56afd78
Merge branch 'master' into cairoShim-refactor
highperformancecoder Oct 14, 2026
2f9945d
refactor: Finished Mansoura integration. Regression suite now passing.
highperformancecoder Oct 16, 2026
82b9999
bugfix: tests build compile failure
highperformancecoder Oct 16, 2026
30503fb
refactor: Sheet now use IMansoura completely. For GH #697.
highperformancecoder Oct 16, 2026
335d524
refactor: Variable now is independent of Cairo. For GH #698.
highperformancecoder Oct 16, 2026
f61a3f0
refactor: PlotWidget::draw no longer reference cairo stuff. For GH #700.
highperformancecoder Oct 17, 2026
fdbf965
Remove cairo dependency on legfend size calculation. For GH #700
highperformancecoder Oct 17, 2026
36c59c9
refactor: migrate Group class to Mansoura. For GH #695.
highperformancecoder Oct 18, 2026
d35efbe
refactor: IntOp, Operation and Wire now Cairo free.
highperformancecoder Oct 18, 2026
9bbbafe
refactor: abstract away cairo dependence in cairoItems.
highperformancecoder Oct 18, 2026
8e5c518
refactor: RavelWrap to use Mansoura.
highperformancecoder Oct 19, 2026
23146a0
refactor: RenderNativeWindow abstracted from cairo details, which are…
highperformancecoder Oct 19, 2026
e687bb6
refactor: requationDisplay ported to Mansoura
highperformancecoder Oct 20, 2026
53ec750
refactor: Remove GodleyIcon::popup. For GH #692.
highperformancecoder Oct 20, 2026
dd3cb65
chore: dead code removal
highperformancecoder Oct 21, 2026
e9554de
chore: rename godleyTableWindow.* to godleyTableEditor.* to reflect c…
highperformancecoder Oct 21, 2026
190ac70
refactor: migrated last of GodleyTableEdit and Item to Mansoura.
highperformancecoder Oct 21, 2026
0973e35
Merge branch 'develop' into cairoShim-refactor
highperformancecoder Oct 21, 2026
66108bb
chore: regenerated minsky.ts and package-lock.json
highperformancecoder Oct 21, 2026
c36061f
chore: update mansoura ref
highperformancecoder Oct 23, 2026
93e99f2
Merge branch 'develop' into cairoShim-refactor
highperformancecoder Oct 26, 2026
c443e32
bugfix: Fix bad merge
highperformancecoder Oct 27, 2026
9844785
Update submodule URL to use HTTPS
highperformancecoder Oct 27, 2026
01325c7
chore: Fix broken regression test
highperformancecoder Oct 27, 2026
f447134
Merge branch 'cairoShim-refactor' of github.com:highperformancecoder/…
highperformancecoder Oct 27, 2026
65f7eb7
Address code review comments
highperformancecoder Oct 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,6 @@
[submodule "libclipboard"]
path = libclipboard
url = https://github.com/OfficialKris/libclipboard.git
[submodule "mansoura"]
path = mansoura
url = https://github.com/highperformancecoder/mansoura.git
29 changes: 20 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ ifneq ($(build_ecolab),ecolab built)
$(warning $(shell cat ecolab/build.log))
$(error Making ecolab failed: check ecolab/build.log)
endif
# mansoura/src needs to be before EcoLab's include directory, as it overrides them
FLAGS+=-Imansoura/src
include $(ECOLAB_HOME)/include/Makefile

ifndef MXE
Expand Down Expand Up @@ -99,6 +101,14 @@ ifneq ($(strip $(build_ravelcapi)),ravelcapi built)
$(error Making RavelCAPI failed: check RavelCAPI/build.log)
endif

# Mansoura
build_mansoura:=$(shell cd mansoura; if $(MAKE) $(JOBS) $(MAKEOVERRIDES) libmansoura.a >build.log 2>&1; then echo "mansoura built"; fi)
Comment thread
highperformancecoder marked this conversation as resolved.
Resolved
$(warning $(build_mansoura))
ifneq ($(strip $(build_mansoura)),mansoura built)
$(error Making Mansoura failed: check mansoura/build.log)
endif


ifndef MXE
# libclipboard
build_libclipboard:=$(shell cd libclipboard; if cmake -DBUILD_SHARED_LIBS=0 -DCMAKE_C_FLAGS=-fPIC . &>build.log && $(MAKE) $(JOBS) >>build.log 2>&1; then echo "libclipboard built"; fi)
Expand Down Expand Up @@ -182,8 +192,8 @@ PREFIX=/usr/local
# custom one that picks up its scripts from a relative library
# directory
MODLINK=$(LIBMODS:%=$(ECOLAB_HOME)/lib/%)
MODEL_OBJS=autoLayout.o cairoItems.o canvas.o CSVDialog.o dataOp.o equationDisplay.o godleyIcon.o godleyTable.o godleyTableWindow.o group.o item.o intOp.o lasso.o lock.o minsky.o operation.o operationRS.o operationRS1.o operationRS2.o phillipsDiagram.o plotWidget.o port.o pubTab.o ravelWrap.o renderNativeWindow.o selection.o sheet.o SVGItem.o switchIcon.o userFunction.o userFunction_units.o variableInstanceList.o variable.o windowInformation.o wire.o
ENGINE_OBJS=clipboard.o cairoShimCairo.o databaseIngestor.o derivative.o equationDisplayRender.o equations.o evalGodley.o evalOp.o flowCoef.o \
MODEL_OBJS=autoLayout.o cairoItems.o canvas.o CSVDialog.o dataOp.o equationDisplay.o godleyIcon.o godleyTable.o godleyTableEditor.o group.o item.o intOp.o lasso.o lock.o minsky.o operation.o operationRS.o operationRS1.o operationRS2.o phillipsDiagram.o plotWidget.o port.o pubTab.o ravelWrap.o renderNativeWindow.o selection.o sheet.o switchIcon.o userFunction.o userFunction_units.o variableInstanceList.o variable.o windowInformation.o wire.o
ENGINE_OBJS=clipboard.o databaseIngestor.o derivative.o equationDisplayRender.o equations.o evalGodley.o evalOp.o flowCoef.o \
godleyExport.o latexMarkup.o valueId.o variableValue.o node_latex.o node_matlab.o CSVParser.o \
minskyTensorOps.o mdlReader.o saver.o rungeKutta.o
SCHEMA_OBJS=schema3.o schema2.o schema1.o schema0.o schemaHelper.o variableType.o \
Expand All @@ -201,7 +211,7 @@ LIBS+=-Wl,-framework -Wl,Security -Wl,-headerpad_max_install_names
MODEL_OBJS+=getContext.o
endif

ALL_OBJS=$(MODEL_OBJS) $(ENGINE_OBJS) $(SCHEMA_OBJS) $(RESTSERVICE_OBJS) RESTService.o addon.o typescriptAPI.o pyminsky.o createLinkGroupIcons.o
ALL_OBJS=$(MODEL_OBJS) $(ENGINE_OBJS) $(SCHEMA_OBJS) $(RESTSERVICE_OBJS) RESTService.o addon.o typescriptAPI.o pyminsky.o createLinkGroupIcons.o


EXES=RESTService/minsky-RESTService$(EXE)
Expand Down Expand Up @@ -229,7 +239,7 @@ ifdef CLASSDESC_ARITIES
FLAGS+=-DUSE_UNROLLED -DCLASSDESC_ARITIES=$(CLASSDESC_ARITIES)
endif

FLAGS+=-UTR1 -Ischema -Iengine -Imodel -Icertify/include -IRESTService -IRavelCAPI/civita -IRavelCAPI -Ilibclipboard/include -DCLASSDESC $(OPT) -UECOLAB_LIB -DECOLAB_LIB=\"library\" -DJSON_PACK_NO_FALL_THROUGH_TO_STREAMING -Wno-unused-local-typedefs -Wno-pragmas -Wno-unused-command-line-argument -Wno-unknown-warning-option -Wno-attributes -DCIVITA_ALLOCATOR=civita::LibCAllocator
FLAGS+=-UTR1 -Ischema -Iengine -Imodel -Icertify/include -Imansoura/src -IRESTService -IRavelCAPI/civita -IRavelCAPI -Ilibclipboard/include -DCLASSDESC $(OPT) -UECOLAB_LIB -DECOLAB_LIB=\"library\" -DJSON_PACK_NO_FALL_THROUGH_TO_STREAMING -Wno-unused-local-typedefs -Wno-pragmas -Wno-unused-command-line-argument -Wno-unknown-warning-option -Wno-attributes -DCIVITA_ALLOCATOR=civita::LibCAllocator

ifdef OBS
# Fedora environments make duplicated macros a fatal error, and then
Expand Down Expand Up @@ -260,7 +270,7 @@ ifeq ($(DEBUG), 1)
FLAGS+=-Wp,-D_GLIBCXX_ASSERTIONS
endif

VPATH= schema model engine RESTService RavelCAPI/civita RavelCAPI $(ECOLAB_HOME)/include $(ECOLAB_HOME)/graphcode $(ECOLAB_HOME)/classdesc
VPATH= schema model engine RESTService RavelCAPI/civita RavelCAPI mansoura/src $(ECOLAB_HOME)/include $(ECOLAB_HOME)/graphcode $(ECOLAB_HOME)/classdesc

# Classdesc rules
CDINC=-I $(CDINCLUDE) -I $(ECOLAB_HOME)/include -I RESTService
Expand Down Expand Up @@ -345,7 +355,7 @@ ifeq ($(OS),CYGWIN)
FLAGS+=-Wa,-mbig-obj -Wl,-x -Wl,--oformat,pe-bigobj-x86-64
endif

LIBS:=-LRavelCAPI -lravelCAPI -LRavelCAPI/civita -lcivita -lboost_date_time$(BOOST_EXT) -lgsl -lgslcblas -lssl -lcrypto $(LIBS)
LIBS:=-Lmansoura -lmansoura -LRavelCAPI -lravelCAPI -LRavelCAPI/civita -lcivita -lboost_date_time$(BOOST_EXT) -lgsl -lgslcblas -lssl -lcrypto $(LIBS)
Comment thread
highperformancecoder marked this conversation as resolved.
Resolved

ifdef MXE
LIBS+=-lgdi32 -lcrypt32 -lbcrypt -lshcore
Expand Down Expand Up @@ -465,7 +475,7 @@ gui-js/build/minskyRESTService.node:| $(DLLS:%=$(DYNAMIC_LIB_DIR)/%)
endif

# N-API node embedded RESTService
gui-js/build/minskyRESTService.node: addon.o $(NODE_API) $(RESTSERVICE_OBJS) $(MODEL_OBJS) $(SCHEMA_OBJS) $(ENGINE_OBJS) RavelCAPI/libravelCAPI.a RavelCAPI/civita/libcivita.a
gui-js/build/minskyRESTService.node: addon.o $(NODE_API) $(RESTSERVICE_OBJS) $(MODEL_OBJS) $(SCHEMA_OBJS) $(ENGINE_OBJS) mansoura/libmansoura.a RavelCAPI/libravelCAPI.a RavelCAPI/civita/libcivita.a
mkdir -p gui-js/build
ifdef MXE
$(LINK) -shared -o $@ $^ $(LIBS)
Expand Down Expand Up @@ -515,7 +525,7 @@ $(EXES):
tests: $(EXES)
cd test; $(MAKE) $(MAKEOVERRIDES) CPLUSPLUS="$(CPLUSPLUS)"

BASIC_CLEAN=rm -rf *.o *~ "\#*\#" core *.d *.cd *.rcd *.tcd *.xcd *.gcda *.gcno *.so *.dll *.dylib
BASIC_CLEAN=rm -rf *.o *~ "\#*\#" core *.d *.cd *.rcd *.tcd *.xcd *.gcda *.gcno *.so *.dll *.dylib *.a

clean:
-$(BASIC_CLEAN) minsky.xsd
Expand All @@ -525,8 +535,9 @@ clean:
-cd engine && $(BASIC_CLEAN)
-cd schema && $(BASIC_CLEAN)
-cd ecolab && $(MAKE) clean
-cd mansoura && $(MAKE) clean
-cd RavelCAPI && $(MAKE) clean
-cd libclipboard && $(MAKE) clean && rm -f CMakeCache.txt
-cd libclipboard && $(MAKE) clean ; rm -f CMakeCache.txt

mac-dist:
# force rebuild of the node file to force rewriting of dependent dylibs
Expand Down
4 changes: 4 additions & 0 deletions RESTService/pyminsky.cc
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@
//#define REST_PROCESS_BUFFER classdesc::PythonBuffer
#include "minsky.h"
#include "CSVTools.xcd"
#include "plot.xcd"
#include "plot.rcd"
#include "SVGItem.xcd"
#include "SVGItem.rcd"
#include "minsky_epilogue.h"
#include "pythonBuffer.h"

Expand Down
12 changes: 5 additions & 7 deletions RESTService/typescriptAPI.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
#include "assetClass.tcd"
#include "bookmark.h"
#include "bookmark.tcd"
#include "cairoSurfaceImage.tcd"
#include "cairoRenderer.tcd"
#include "callableFunction.tcd"
#include "canvas.tcd"
#define CLASSDESC_typescriptAPI___CAPIRenderer
Expand All @@ -29,7 +27,7 @@
#include "fontDisplay.tcd"
#include "godleyIcon.tcd"
#include "godleyTable.tcd"
#include "godleyTableWindow.tcd"
#include "godleyTableEditor.tcd"
#include "group.tcd"
#include "handleLockInfo.tcd"
#include "hypercube.tcd"
Expand All @@ -39,14 +37,13 @@
#include "itemT.tcd"
#include "lasso.tcd"
#include "lock.tcd"
#include "mansouraPlot.tcd"
#include "noteBase.tcd"
#include "operation.tcd"
#include "operationBase.tcd"
#include "operationType.tcd"
#include "pango.tcd"
#include "pannableTab.tcd"
#include "phillipsDiagram.tcd"
#include "plot.tcd"
#include "plotOptions.tcd"
#include "plotWidget.tcd"
#include "polyRESTProcessBase.tcd"
Expand All @@ -63,6 +60,7 @@
#include "simulation.tcd"
#include "slider.tcd"
#include "SVGItem.tcd"
#include "SVGItem.xcd"
#include "switchIcon.tcd"
#include "tensorInterface.tcd"
#include "tensorVal.tcd"
Expand Down Expand Up @@ -253,11 +251,11 @@ int main()
api.addClass<civita::XVector>();
api.addClass<CSVDialog>();
api.addClass<DataSpecSchema>();
api.addClass<ecolab::Plot::LineStyle>();
api.addClass<EngNotation>();
api.addClass<EventInterface>();
api.addClass<GroupItems>();
api.addClass<HandleLockInfo>();
api.addClass<mansoura::Plot::LineStyle>();
api.addClass<Port>();
api.addClass<PubItem>();
api.addClass<ravel::DataSpec>();
Expand Down Expand Up @@ -313,7 +311,7 @@ int main()
cout << "class classdesc__pack_t {}\n";
cout << "class classdesc__RESTProcess_t {}\n";
cout << "class ecolab__cairo__Surface {}\n";
cout << "class ICairoShim {}\n";
cout << "class mansoura__IMansoura {}\n";
cout<<endl;

// these need to be declared in a specific order
Expand Down
6 changes: 3 additions & 3 deletions createLinkGroupIcons.cc
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
#include "plot.h"
#include "mansouraPlot.h"
#include "cairo_base.h"
#include "ecolab_epilogue.h"
#include <cairo.h>
using namespace ecolab;
using namespace mansoura;
using namespace std;

int main()
{
const double width=30, height=10;
for (int i=0; i<paletteSz; ++i)
{
const cairo::Surface surface(cairo_image_surface_create(CAIRO_FORMAT_ARGB32,width,height));
const ecolab::cairo::Surface surface(cairo_image_surface_create(CAIRO_FORMAT_ARGB32,width,height));
auto cr=surface.cairo();
auto c=palette[i];
cairo_set_source_rgba(cr,0.5*c.r,0.5*c.g,0.5*c.b,0.5*c.a);
Expand Down
Loading
Loading