Changeset 79d8c07 in git


Ignore:
Timestamp:
Feb 21, 2017, 2:44:47 PM (7 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
Children:
080559c737ebc125b730ba125bdc1a1f5cb19587
Parents:
2224177fc97923cba919ec6fe72b9521585e4b11
Message:
simplified some files: dyn_modules/python
Location:
Singular/dyn_modules/python
Files:
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • Singular/dyn_modules/python/python.cc

    r222417 r79d8c07  
    1 /*
    2  * This was automatically generated by modgen
    3  * version 0.2
    4  * module python
    5  * Don't edit this file
    6  */
    7 
    8 
    9 #line 10 "python.cc"
    101#include <stdlib.h>
    112#include <stdio.h>
     
    2516#include <omalloc.h>
    2617#include "python.h"
    27 #line 19 "python.cc"
    28 
    29 idhdl enter_id(char *name, char *value, idtyp t)
    30 {
    31   idhdl h;
    32 
    33   h=enterid(omStrDup(name),0, t, &(currPack->idroot), TRUE/*FALSE*/);
    34   if(h!=NULL) {
    35      switch(t) {
    36          case STRING_CMD:
    37               omFree(IDSTRING(h));
    38               IDSTRING(h) = omStrDup(value);
    39               break;
    40          case PACKAGE_CMD: break;
    41          case PROC_CMD: break;
    42      }
    43   } else
    44       Warn("Cannot create '%s'\n", name);
    45   return(h);
    46 }
    47 
    48 #line 37 "python.cc"
    49 
    50 idhdl add_singular_proc(FILE* binfp, char *procname,int line,
    51                        long pos, long end, BOOLEAN pstatic)
    52 {
    53   idhdl h;
    54   procinfov pi;
    55   char *tempstr;
    56   h = enter_id(procname, NULL, PROC_CMD);
    57   if(h == NULL) return NULL;
    58 
    59   pi = IDPROC(h);
    60 
    61   pi->libname = omStrDup(currPack->libname);
    62   pi->procname = omStrDup(procname);
    63   pi->language = LANG_SINGULAR;
    64   pi->ref = 1;
    65   pi->is_static = pstatic;
    66   pi->data.s.proc_start = pos;
    67   pi->data.s.def_end    = pos;
    68   pi->data.s.help_start = 0L;
    69   pi->data.s.help_end   = 0L;
    70   pi->data.s.body_start = pos;
    71   pi->data.s.body_end   = end;
    72   pi->data.s.proc_end   = end;
    73   pi->data.s.example_start = 0L;
    74   pi->data.s.proc_lineno = line;
    75   pi->data.s.body_lineno = line;
    76   pi->data.s.example_lineno = 0;
    77   pi->data.s.help_chksum = 0;
    78 
    79   rewind(binfp);
    80   fseek(binfp,pos,SEEK_CUR);
    81   tempstr=(char *)omAlloc(end-pos+2);
    82   memset(tempstr,0,end-pos+2);
    83   fread(tempstr,sizeof(char),end-pos+1,binfp);
    84   pi->data.s.body = omStrDup(tempstr);
    85   omFree(tempstr);
    86 
    87   return(h);
    88 }
    89 
    90 unsigned long crccheck(
    91   char *file
    92   )
    93 {
    94   unsigned char buf[BUFLEN1];
    95   unsigned long crc = 0;
    96   long length = 0;
    97   long bytes_read;
    98   register FILE *fp;
    99 
    100   // open the file
    101   fp = fopen (file, "rb");
    102   if (fp == NULL) return 0;
    103 
    104   // read the file chunk by chunk, determine the lenght and
    105   // start computing the checksum
    106   while ((bytes_read = fread (buf, 1, BUFLEN1, fp)) > 0)
    107   {
    108     unsigned char *cp = buf;
    109     length += bytes_read;
    110     while (bytes_read--)
    111       crc = (crc << 8) ^ crctab[((crc >> 24) ^ *(cp++)) & 0xFF];
    112     }
    113 
    114   // check if something went wrong and close the file
    115   if (ferror (fp)) return 0;
    116   if (fclose(fp)==EOF) return 0;
    117 
    118   // second part of checksum computation
    119   bytes_read = length;
    120   while (bytes_read > 0) {
    121     crc = (crc << 8) ^ crctab[((crc >> 24) ^ bytes_read) & 0xFF];
    122     bytes_read >>= 8;
    123   }
    124 
    125   crc = ~crc & 0xFFFFFFFF;
    126 
    127   return(crc);
    128 }
    129 
    130 void fill_help_package();
    131 void fill_example_package();
    132 
    133 #line 2 "python.mod"
    134 /*
    135  *
    136  *  Test mod fuer modgen
    137  */
    13818
    13919#include <stdio.h>
     
    14424#include "wrapper.h"
    14525
    146 void mbpython(char* in);
    147 #line 17 "python.mod"
    148 
    149 
    150 #line 137 "python.cc"
    15126extern "C" {
    15227//int mod_init(
     
    15429//              BOOLEAN(*func)(leftv res, leftv v))
    15530//  )
    156   int mod_init(
    157     SModulFunctions* psModulFunctions
    158     )
     31  int mod_init( SModulFunctions* psModulFunctions)
    15932{
    160   idhdl h;
    161   char * tempstr;
    162   FILE * binfp;
    163   int ret;
    164   struct stat sb;
    165 
    166   tempstr = (char *)omAlloc(strlen(currPack->libname)+5);
    167   memset(tempstr,0,strlen(currPack->libname)+1);
    168   memcpy(tempstr,currPack->libname,strlen(currPack->libname));
    169   memcpy(tempstr+strlen(currPack->libname)-3,".bin",4);
    170   ret=stat(tempstr,&sb);
    171   if(ret==0) {
    172     if ((sb.st_mode & S_IFMT) == S_IFREG) {
    173       if (crccheck(tempstr)!=crcsum)
    174       {   Warn("file %s does not agree with module version - ignoring file",tempstr);
    175           ret=-1;
    176       }
    177       if ((binfp = fopen(tempstr,"r")) == NULL) return -1;
    178     }
    179     else
    180       ret=-1;
    181   }
    182 
    183   fill_help_package();
    184   fill_example_package();
    185 
    186 #line 20 "python.mod"
    18733  enter_id("category","tests", STRING_CMD);
    188 #line 22 "python.mod"
    18934  enter_id("version","$Id$", STRING_CMD);
    190 #line 23 "python.mod"
    19135  enter_id("info","LIBRARY: kernel.lib  PROCEDURES OF GENERAL TYPE WRITEN IN C python(input); eval a string  in python", STRING_CMD);
    192 #line 26 "python.mod"
    193 #line 27 "python.mod"
    19436  Py_Initialize();
    19537  PyRun_SimpleString("from sys import path\n\
     
    19840  init_Singular();
    19941
    200 #line 36 "python.mod"
    20142  psModulFunctions->iiAddCproc(currPack->libname,"python",FALSE, mod_python);
    202 //psModulFunctions->iiAddCproc("packagename","procname",FALSE, procedure);
    203   if(ret!=-1) fclose(binfp);
    20443  return 0;
    20544}
    206 }
    20745
    208 #line 187 "python.cc"
    209 /* Help section */
    210 void fill_help_package() {
    211 
    212 #line 192 "python.cc"
    213 }  /* End of Help section */
    214 
    215 /* Example section */
    216 void fill_example_package() {
    217 #line 43 "python.mod"
    218   enter_id("python_example",
    219  "\
    220   python(\"print 1+1\");\
    221 ", STRING_CMD);
    222 
    223 
    224 #line 206 "python.cc"
    225 } /* End of Example section */
    226 
    227 #line 36 "python.mod"
    22846BOOLEAN mod_python(leftv __res, leftv __h)
    22947{
    230 #line 37 "python.mod"
    231 #line 214 "python.cc"
    232 
    233 #line 38 "python.mod"
    234 #line 217 "python.cc"
    23548  leftv __v = __h, __v_save;
    23649  int __tok = NONE, __index = 0;
    23750  sleftv __sa; leftv __za = &__sa;
    23851  char * a;
    239 #line 38 "python.mod"
    240 
    241 
    242 #line 39 "python.mod"
    243 #line 226 "python.cc"
    24452  if(__v==NULL) goto mod_python_error;
    24553  __tok = __v->Typ();
     
    25462  if(__v!=NULL) { __tok = __v->Typ(); goto mod_python_error; }
    25563
    256 #line 39 "python.mod"
    257 
    258   mbpython(a);
    259 #line 41 "python.mod"
    260 #line 243 "python.cc"
     64  PyRun_SimpleString(a);
    26165  __res->data = NULL;
    26266  __res->rtyp = END_RING;
     
    26872    return TRUE;
    26973}
    270 
    271 
    272 #line 254 "python.cc"
    273 #line 53 "python.mod"
    274 void mbpython(char* inp){
    275   PyRun_SimpleString(inp);
    276 }
  • Singular/dyn_modules/python/python.h

    r222417 r79d8c07  
    1 /*
    2  * This was automatically generated by modgen
    3  * version 0.2
    4  * module python
    5  * Don't edit this file
    6  */
    7 
    8 
    9 #line 180 "python.cc"
    10 
    111BOOLEAN mod_python(leftv res, leftv h);
    12 unsigned long crcsum=3561112453;
    13 /*********************************************************************
    14  * crctab.h crctable necessary for the use of crccheck from utils.cc *
    15  *********************************************************************/
    16 # define BUFLEN1 (1 << 16)
    17 
    18 static unsigned long const crctab[256] =
    19 {
    20   0x0,
    21   0x04C11DB7, 0x09823B6E, 0x0D4326D9, 0x130476DC, 0x17C56B6B,
    22   0x1A864DB2, 0x1E475005, 0x2608EDB8, 0x22C9F00F, 0x2F8AD6D6,
    23   0x2B4BCB61, 0x350C9B64, 0x31CD86D3, 0x3C8EA00A, 0x384FBDBD,
    24   0x4C11DB70, 0x48D0C6C7, 0x4593E01E, 0x4152FDA9, 0x5F15ADAC,
    25   0x5BD4B01B, 0x569796C2, 0x52568B75, 0x6A1936C8, 0x6ED82B7F,
    26   0x639B0DA6, 0x675A1011, 0x791D4014, 0x7DDC5DA3, 0x709F7B7A,
    27   0x745E66CD, 0x9823B6E0, 0x9CE2AB57, 0x91A18D8E, 0x95609039,
    28   0x8B27C03C, 0x8FE6DD8B, 0x82A5FB52, 0x8664E6E5, 0xBE2B5B58,
    29   0xBAEA46EF, 0xB7A96036, 0xB3687D81, 0xAD2F2D84, 0xA9EE3033,
    30   0xA4AD16EA, 0xA06C0B5D, 0xD4326D90, 0xD0F37027, 0xDDB056FE,
    31   0xD9714B49, 0xC7361B4C, 0xC3F706FB, 0xCEB42022, 0xCA753D95,
    32   0xF23A8028, 0xF6FB9D9F, 0xFBB8BB46, 0xFF79A6F1, 0xE13EF6F4,
    33   0xE5FFEB43, 0xE8BCCD9A, 0xEC7DD02D, 0x34867077, 0x30476DC0,
    34   0x3D044B19, 0x39C556AE, 0x278206AB, 0x23431B1C, 0x2E003DC5,
    35   0x2AC12072, 0x128E9DCF, 0x164F8078, 0x1B0CA6A1, 0x1FCDBB16,
    36   0x018AEB13, 0x054BF6A4, 0x0808D07D, 0x0CC9CDCA, 0x7897AB07,
    37   0x7C56B6B0, 0x71159069, 0x75D48DDE, 0x6B93DDDB, 0x6F52C06C,
    38   0x6211E6B5, 0x66D0FB02, 0x5E9F46BF, 0x5A5E5B08, 0x571D7DD1,
    39   0x53DC6066, 0x4D9B3063, 0x495A2DD4, 0x44190B0D, 0x40D816BA,
    40   0xACA5C697, 0xA864DB20, 0xA527FDF9, 0xA1E6E04E, 0xBFA1B04B,
    41   0xBB60ADFC, 0xB6238B25, 0xB2E29692, 0x8AAD2B2F, 0x8E6C3698,
    42   0x832F1041, 0x87EE0DF6, 0x99A95DF3, 0x9D684044, 0x902B669D,
    43   0x94EA7B2A, 0xE0B41DE7, 0xE4750050, 0xE9362689, 0xEDF73B3E,
    44   0xF3B06B3B, 0xF771768C, 0xFA325055, 0xFEF34DE2, 0xC6BCF05F,
    45   0xC27DEDE8, 0xCF3ECB31, 0xCBFFD686, 0xD5B88683, 0xD1799B34,
    46   0xDC3ABDED, 0xD8FBA05A, 0x690CE0EE, 0x6DCDFD59, 0x608EDB80,
    47   0x644FC637, 0x7A089632, 0x7EC98B85, 0x738AAD5C, 0x774BB0EB,
    48   0x4F040D56, 0x4BC510E1, 0x46863638, 0x42472B8F, 0x5C007B8A,
    49   0x58C1663D, 0x558240E4, 0x51435D53, 0x251D3B9E, 0x21DC2629,
    50   0x2C9F00F0, 0x285E1D47, 0x36194D42, 0x32D850F5, 0x3F9B762C,
    51   0x3B5A6B9B, 0x0315D626, 0x07D4CB91, 0x0A97ED48, 0x0E56F0FF,
    52   0x1011A0FA, 0x14D0BD4D, 0x19939B94, 0x1D528623, 0xF12F560E,
    53   0xF5EE4BB9, 0xF8AD6D60, 0xFC6C70D7, 0xE22B20D2, 0xE6EA3D65,
    54   0xEBA91BBC, 0xEF68060B, 0xD727BBB6, 0xD3E6A601, 0xDEA580D8,
    55   0xDA649D6F, 0xC423CD6A, 0xC0E2D0DD, 0xCDA1F604, 0xC960EBB3,
    56   0xBD3E8D7E, 0xB9FF90C9, 0xB4BCB610, 0xB07DABA7, 0xAE3AFBA2,
    57   0xAAFBE615, 0xA7B8C0CC, 0xA379DD7B, 0x9B3660C6, 0x9FF77D71,
    58   0x92B45BA8, 0x9675461F, 0x8832161A, 0x8CF30BAD, 0x81B02D74,
    59   0x857130C3, 0x5D8A9099, 0x594B8D2E, 0x5408ABF7, 0x50C9B640,
    60   0x4E8EE645, 0x4A4FFBF2, 0x470CDD2B, 0x43CDC09C, 0x7B827D21,
    61   0x7F436096, 0x7200464F, 0x76C15BF8, 0x68860BFD, 0x6C47164A,
    62   0x61043093, 0x65C52D24, 0x119B4BE9, 0x155A565E, 0x18197087,
    63   0x1CD86D30, 0x029F3D35, 0x065E2082, 0x0B1D065B, 0x0FDC1BEC,
    64   0x3793A651, 0x3352BBE6, 0x3E119D3F, 0x3AD08088, 0x2497D08D,
    65   0x2056CD3A, 0x2D15EBE3, 0x29D4F654, 0xC5A92679, 0xC1683BCE,
    66   0xCC2B1D17, 0xC8EA00A0, 0xD6AD50A5, 0xD26C4D12, 0xDF2F6BCB,
    67   0xDBEE767C, 0xE3A1CBC1, 0xE760D676, 0xEA23F0AF, 0xEEE2ED18,
    68   0xF0A5BD1D, 0xF464A0AA, 0xF9278673, 0xFDE69BC4, 0x89B8FD09,
    69   0x8D79E0BE, 0x803AC667, 0x84FBDBD0, 0x9ABC8BD5, 0x9E7D9662,
    70   0x933EB0BB, 0x97FFAD0C, 0xAFB010B1, 0xAB710D06, 0xA6322BDF,
    71   0xA2F33668, 0xBCB4666D, 0xB8757BDA, 0xB5365D03, 0xB1F740B4
    72 };
  • Singular/dyn_modules/python/python.mod

    r222417 r79d8c07  
    1 %{
    2 /*
    3  *
    4  *  Python module
    5  */
    6 
    71#include <stdio.h>
    82#include <stdlib.h>
     
    137
    148void mbpython(char* in);
    15 %}
    16 
    17 // some comments here
    18 
    19 category="tests";
    20 package="python_module";
    21 version = "$Id$";
    22 info    ="LIBRARY: kernel.lib  PROCEDURES OF GENERAL TYPE WRITEN IN C python(input); eval a string  in python";
    23 //files= wrapper.cc;
    249%modinitial
    2510  Py_Initialize();
     
    3924  %declaration;
    4025  %typecheck;
    41   mbpython(a);
     26  PyRun_SimpleString(a);
    4227  %return();
    4328}
    44 example
    45 {
    46   python("print 1+1");
    47 }
     29%C
    4830
    4931
    50 
    51 %%
    52 %C
    53 
    54 void mbpython(char* inp){
    55 
    56   PyRun_SimpleString(inp);
    57 
    58 
    59 }
    60 
    61 
    62 
Note: See TracChangeset for help on using the changeset viewer.