GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
#include "polymake_data.h"12extern Obj TheTypeExternalPolymakeCone;3extern Obj TheTypeExternalPolymakeFan;4extern Obj TheTypeExternalPolymakePolytope;5extern Obj TheTypeExternalPolymakeTropicalHypersurface;6extern Obj TheTypeExternalPolymakeTropicalPolytope;78Obj NewPolymakeExternalObject(enum polymake_object_type t) {9Obj o;10o = NewBag(T_POLYMAKE, 2*sizeof(Obj));1112switch(t) {13case T_POLYMAKE_EXTERNAL_CONE:14ADDR_OBJ(o)[0] = TheTypeExternalPolymakeCone;15break;16case T_POLYMAKE_EXTERNAL_FAN:17ADDR_OBJ(o)[0] = TheTypeExternalPolymakeFan;18break;19case T_POLYMAKE_EXTERNAL_POLYTOPE:20ADDR_OBJ(o)[0] = TheTypeExternalPolymakePolytope;21break;22case T_POLYMAKE_EXTERNAL_TROPICAL_HYPERSURFACE:23ADDR_OBJ(o)[0] = TheTypeExternalPolymakeTropicalHypersurface;24break;25case T_POLYMAKE_EXTERNAL_TROPICAL_POLYTOPE:26ADDR_OBJ(o)[0] = TheTypeExternalPolymakeTropicalPolytope;27break;28}29ADDR_OBJ(o)[1] = NULL;30return o;31}3233/* Free function */34void ExternalPolymakeObjectFreeFunc(Obj o) {35perlobj* p = PERLOBJ_POLYMAKEOBJ(o);36if(p != NULL)37delete p;38}3940/* Type object function for the polymake object */41Obj ExternalPolymakeObjectTypeFunc(Obj o) {42return ADDR_OBJ(o)[0];43}4445void polymake_start( Polymake_Data* data ){46if( ! data->initialized ){47data->main_polymake_session = new polymake::Main;48data->main_polymake_scope = new polymake::perl::Scope(data->main_polymake_session->newScope());49data->initialized = true;50}51return;52}535455