Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
pmfeatures.h
00001 /* 00002 # This file is Copyright 2009 Dean Hall. 00003 # 00004 # This file is part of the Python-on-a-Chip program. 00005 # Python-on-a-Chip is free software: you can redistribute it and/or modify 00006 # it under the terms of the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1. 00007 # 00008 # Python-on-a-Chip is distributed in the hope that it will be useful, 00009 # but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00011 # A copy of the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1 00012 # is seen in the file COPYING up one directory from this. 00013 */ 00014 00015 00016 /** 00017 * VM feature configuration 00018 * 00019 * Compile time switches to include features or save space. 00020 * 00021 * IMPORTANT: All of the HAVE_* items in this file should also exist in the 00022 * PM_FEATURES dict in src/tools/pmImgCreator.py. If the item is defined here, 00023 * the corresponding dict value should be True; False otherwise. 00024 */ 00025 00026 00027 #ifndef FEATURES_H_ 00028 #define FEATURES_H_ 00029 00030 00031 /** Defines the size of the static heap */ 00032 #define PM_HEAP_SIZE 0x2000 00033 00034 00035 /** 00036 * When defined, bytecodes PRINT_ITEM and PRINT_NEWLINE are supported. Along 00037 * with these, helper routines in the object type are compiled in that allow 00038 * printing of the object. 00039 * REQUIRES stdio.h to have snprintf() 00040 */ 00041 #define HAVE_PRINT 00042 00043 00044 /** 00045 * When defined, the code to perform mark-sweep garbage collection is included 00046 * in the build and automatic GC is enabled. When undefined the allocator 00047 * will distribute memory until none is left, after which a memory exception 00048 * will occur. 00049 */ 00050 #define HAVE_GC 00051 00052 00053 /* #148 Create configurable float datatype */ 00054 /** 00055 * When defined, the code to support floating point objects is included 00056 * in the build. 00057 */ 00058 #define HAVE_FLOAT 00059 #define PM_FLOAT_LITTLE_ENDIAN 00060 00061 /** 00062 * When defined, the code to support the keyword del is included in the build. 00063 * This involves the bytecodes: DELETE_SUBSCR, DELETE_NAME, DELETE_ATTR, 00064 * DELETE_GLOBAL and DELETE_FAST. 00065 */ 00066 #define HAVE_DEL 00067 00068 /** 00069 * When defined, the code to support the IMPORT_FROM and IMPORT_STAR styles 00070 * is included in the build. 00071 */ 00072 #define HAVE_IMPORTS 00073 00074 /* #157 Support default args */ 00075 /** 00076 * When defined, the code to support default arguments to functions is included 00077 * in the build. 00078 */ 00079 #define HAVE_DEFAULTARGS 00080 00081 /* #160 Add support for string and tuple replication */ 00082 /** 00083 * When defined, the code to support sequence (list, tuple, string) replcation 00084 * is included in the build. 00085 * This feature is required by the builtin function __bi.map(). 00086 */ 00087 #define HAVE_REPLICATION 00088 00089 /* #202 Implement classes in the vm */ 00090 /** 00091 * When defined, the code to support classes, instances, methods, etc. 00092 * is included in the build. 00093 */ 00094 #define HAVE_CLASSES 00095 00096 /** 00097 * When defined, the code to support the assert statement is included 00098 * in the build. 00099 */ 00100 #define HAVE_ASSERT 00101 #if defined(HAVE_ASSERT) && !defined(HAVE_CLASSES) 00102 #error HAVE_ASSERT requires HAVE_CLASSES 00103 #endif 00104 00105 /* #207 Add support for the yield keyword */ 00106 /** 00107 * When defined, the code to support the yield keyword's use for 00108 * generator-iterators is included in the build. 00109 */ 00110 #define HAVE_GENERATORS 00111 #if defined(HAVE_GENERATORS) && !defined(HAVE_CLASSES) 00112 #error HAVE_GENERATORS requires HAVE_CLASSES 00113 #endif 00114 00115 /* #244 Add support for the backtick operation (UNARY_CONVERT) */ 00116 /** 00117 * When defined, the code to support the backtick operation (`x`) is included 00118 * in the build. 00119 * REQUIRES stdio.h to have snprintf() 00120 */ 00121 #define HAVE_BACKTICK 00122 00123 /* #205 Add support for string format operation */ 00124 /** 00125 * When defined, the code to perform string formatting using the binary modulo 00126 * operator is included in the build. 00127 * REQUIRES stdio.h to have snprintf() 00128 */ 00129 #define HAVE_STRING_FORMAT 00130 00131 /* #256 Add support for closures */ 00132 /** 00133 * When defined, the code to support function closures is included in the 00134 * build. 00135 */ 00136 #define HAVE_CLOSURES 00137 #if defined(HAVE_CLOSURES) && !defined(HAVE_DEFAULTARGS) 00138 #error HAVE_CLOSURES requires HAVE_DEFAULTARGS 00139 #endif 00140 00141 /* #289 Create bytearray datatype */ 00142 /** 00143 * When defined, the code to support the bytearray type is included in the 00144 * build. 00145 */ 00146 #define HAVE_BYTEARRAY 00147 #if defined(HAVE_BYTEARRAY) && !defined(HAVE_CLASSES) 00148 #error HAVE_BYTEARRAY requires HAVE_CLASSES 00149 #endif 00150 00151 #endif /* FEATURES_H_ */
Generated on Tue Jul 12 2022 17:07:01 by
1.7.2