summaryrefslogtreecommitdiffstats
path: root/squirrel_3_0_1_stable/sqplus/changes.txt
blob: a33f32c2f77dd7b51f23c451d5ed8bd4f576e103 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
2008-07-13 "SQUIRREL2_1_1_sqplus_snapshot_20080713"

  * Released as a snapshot


2008-07-06 kawachi

  * Removed testSqPlus2


2008-06-26 arst@users.sf.net

  * SquirrelVM.cpp / SqPlusSetup.h
    - Added a new define SQPLUS_SQUIRRELVM_WITH_SYSTEMLIB
      (Juggernaut, http://squirrel-lang.org/forums/2585/ShowThread.aspx#2585)
    
    - Added a new function:
      SQClassDefBase::scriptVar(const SQChar* name, int ival, 
                                SQBool static_var=SQFalse)
	
      It allows for creating either static or ordinary Squirrel class
      members from C++ source code. Versions for int/double/const
      SQChar*.
   
    - SquirrelObject::GetBase() - retrieve base class.
      (Juggernaut, http://squirrel-lang.org/forums/2585/ShowThread.aspx#2585)


2008-06-14 Kazei

  * Fixed memory leak in overloadConstructor
    (http://squirrel-lang.org/forums/thread/2516.aspx)


2008-05-10 Neimod

  * Fixed for typesafe scripting
    (http://squirrel-lang.org/forums/thread/2478.aspx)


2008-05-08 arst@users.sf.net
 
  * sqplus.h/.cpp
  
    - SQ_USE_CLASS_INHERITANCE_SIMPLE is a new way of handling class 
      inheritence in SqPlus, relying on a template scheme (see ClassTypeBase 
      and ClassType<T>). It doesn't use any memory per instance and should 
      be a bit faster than previous scheme. SqClassDef has been given
      a second template argument to account for this: 

        struct SQClassDef<MyClass, TheBaseClass> ...
        
    - The name of the class (in SqClassDef) can be filled in by SqPlus now, 
      if Squirrel class name is same as C++ class name:
       
         SQClasDef<Troll, Creature>("Troll", "Creature").func(...) => 
         SQClasDef<Troll, Creature>().func(...)

    - Code to handle class types (names, copy funcs, ID tag, ...) has been 
      collected in ClassTypeBase and ClassType<T>.

    - A new macro to specify that classes should not be copied with default 
      C++ method: DECLARE_NONCOPY_TYPE(ClassThatCannotBeCopied).
     
    - Reworked body of repetetive template functions, Moved to 
      SqPlusCallTemplates.h. Can be included with different qualifiers
      (const, cdecl).
     
    - Support for cdecl member functions (MSVC specific) through: 
   
        SQPLUS_ENABLE_CDECL_MEMBER_FUNCTIONS
       
      cdecl functions are compatible across compilers, while thiscall 
      is not.
     
    - Generic Push/Pop/Match handlers: SQPLUS_USE_GENERIC_HANDLERS
      By default, Push/Get/Match handlers are for a single type. This
      adds a fallback level, so that `hierarchy wide' handlers can
      be used (define for base class and let all derived classes use 
      just that).
     
    - For functions that return a pointer to a temporarary (such as 
      returning a SQDefCharBuf, a template mapper class: 
     
        Temporary<T>::type 
        
       was added. It can hold a temporary value while finishing a 
       SquirrelFunction call (before returning to C++).
   
    - Suppressing horrible warnings from Visual C++ about sprintf and related
      functions (_CRT_SECURE_NO_DEPRECATE).
  
  
  * SquirrelVM.h/.cpp
  
    - Changed SquirrelVM and SquirrelVMSys to make them hold a reference 
      on a SQVM so that ownership can be shared in a defined way. 
      
    - SquirrelVMSys can be used as before to swap the `active' VM. 
      Now it holds a ref to a VM so that a VM is closed automatically
      when switched out and there are no refs to any longer. (To hold a 
      VM ref in the application, simply use an instance of SquirrelVMSys).
      
    - NOTE: A VM created through sq_open() comes out with a reference 
      count of 1. A VM created with sq_newthread() arrives with a ref 
      count of 0. SquirrelVM will compensate for this.
    
    - Possibility to store a `sandbox VM'. This VM is not allowed to
      access functions / classes bound with SqPlus and so can run more
      untrusted scripts.
    
    - Hopefully these changes will not break current apps. (Note: creating
      and keeping correct refs on SQVM involved some difficulties (with ref-
      counting and garbage collected Squirrel). The scheme provided here is 
      (I hope) a working solution.)
    
  * SquirrelObject.h/.cpp 
  
    - Added: operator = (HSQOBJECT)
    
    - From forum: (http://squirrel-lang.org/forums/thread/2506.aspx)
      (suggested by auron0)
      - Added: operator == (const SquirrelObject& o)
      - Added: CompareUserPointer(const SquirrelObject& o)
    
  * SqPlusUTF8.h / .cpp  
  
    - New files for converting strings in arguments (UTF8 <-> wchar_t)
    
    - Fix for conversion of UTF8 sequence of length 3+ bytes



2008-02-17 PallavNawani

  * BindVariable of std::string
    (http://squirrel-lang.org/forums/2370/ShowThread.aspx)
    

2007-10-14 "SQUIRREL2_1_1_sqplus_snapshot_20071014"

  * Fixed const member function overloading by Tegan
    (http://squirrel-lang.org/forums/thread/2160.aspx)
	
  * Updates for missing inline in DECLARE_INSTANCE_TYPE_NAME
    (http://squirrel-lang.org/forums/thread/2156.aspx)

  * Fixed resolution in function overloading
    (http://squirrel-lang.org/forums/thread/2179.aspx)

  * Added support for operator overloading suggested by Tegan
    (http://squirrel-lang.org/forums/thread/2160.aspx)


2007-09-27 "SQUIRREL2_1_1_sqplus_snapshot_20070927"

  * Added ats's extensions :
    http://squirrel-lang.org/forums/1/2153/ShowThread.aspx

      - GCC_INLINE_WORKAROUND (problems with inline functions with gcc)
      - Set/get for short/char members
      - Get for const SQChar*
      - DECLARE_ENUM_TYPE - Allows enums to be used as arguments
      - Support for more customized Push handlers
      - SQPLUS_DISABLE_COPY_INSTANCES (disabling automatic use of copy
        constructors)
      - Support for automatically generate TypeMasks (a template
        solution) on function registration


2007-08-25 "SQUIRREL2_1_1_sqplus_snapshot_20070825"

  * Added m0pey's smart pointer support :
    http://squirrel-lang.org/forums/thread/1982.aspx


2007-01-07 "SQUIRREL2_1_1_sqplus_snapshot_20070701"

  * Fixed `returning a pointer of a derived class' problem with gcc
    (http://squirrel-lang.org/forums/thread/1875.aspx) based on
    http://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/SqPlusNativeCreatedInstancesWithCorrectAncestry.html


2007-06/02 "SQUIRREL2_1_1_sqplus_snapshot_20070602"

  * Fix by Sebastien Frippiat:
    http://squirrel-lang.org/forums/thread/507.aspx


2007-05-27 "SQUIRREL2_1_1_sqplus_snapshot_20070527"

  * Added sqplus/SqPlusOverload.h for function overloading.  See
    testSqPlus2unit/test_FunctionOverloading.cpp.


2007-03-04 "SQUIRREL2_1_1_sqplus_snapshot_20070304"

  * Fixed compilation problem on g++-3.4.4 (cygwin):
    http://squirrel-lang.org/forums/thread/1753.aspx


2007-02-25 "SQUIRREL2_1_1_sqplus_snapshot_20070225"

  * Fix by Kamaitati: http://squirrel-lang.org/forums/thread/1748.aspx

  * Modified sqplu.h (SquirrelObject::Set<>()) for gcc

  * Added testSqPlus2unit directory for unit testing


2006-10-09- "SQUIRREL2_1_1_sqplus_25"

  * Fixed SqPlusConst.h:
    http://squirrel-lang.org/forums/thread/1314.aspx, changed
    SquirrelObject Get/Set to default to pass-by-reference, where
    pass-by-copy requires extra parameter


2006-10-08 "SQUIRREL2_1_1_sqplus_24"

  * Added SQClassDefNoConstructor<>:
    http://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/SqPlusWithoutAutoDefaultConstructor.html
    (allows binding abstract base classes/pure-virtual-interfaces)

  * Added "Squirrel Set/Get objects"
    http://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/SqPlusGetSetObjects.html


2006-09-30 "SQUIRREL2_1_1_sqplus_23"

  * Fixed return type for sq_std_string Get()


2006-08-21 "SQUIRREL2_1_0_sqplus_22"

  * Merged in Squirrel 2.1.1 Stable


2006-08-20 "SQUIRREL2_1_0_sqplus_21"

  * Changed code order to be compatible with GCC 4.1.x.

  * Added jflanglois' suggestion for std::basic_string<SQChar>


2006-06-27 "SQUIRREL2_1_0_sqplus_20"

  * Added Katsuaki Kawachi's GetInstance()/Match() changes
    (http://www.squirrel-lang.org/forums/962/ShowPost.aspx)


2006-02-06 "SQUIRREL2_1_0_sqplus_19"

  * Added VS7.1 make/project files with 71 suffix: can be used
    alongside VS8 without directory changes

  * Added optional debug string argument to SquirrelVM::CompileBuffer()


2006-05-28 "SQUIRREL2_1_0_sqplus_18"

  * Added Kamaitati's changes: bug fix, C++ style inheritance support,
    null instance argument support


2006-04-25 "SQUIRREL2_1_0_sqplus_17"

  * Changed SquirrelObject::GetInstanceUP() to return NULL and
    clear internal error state on invalid instance type request

  * Added SquirrelObject::GetTypeName(const "SQChar" * key),
    SquirrelObject::GetTypeName("INT" key) and
    SquirrelObject::GetTypeName().

  * Added SQ_SUPPORT_INSTANCE_TYPE_INFO compile time option

  * Added missing template arguments (7 argument case)

  * Source changes to support VS7.1 and VS8 compilation (standard and
    UNICODE builds)

  * Added Code::Blocks project files


2006-03-26 "SQUIRREL2_1_0_sqplus_11"

  * Updated make/build files to VS8 (http://msdn.microsoft.com/vstudio/)

  * Source changes for VS8 compilation


2006-03-19 "SQUIRREL2_1_0_sqplus_10"

  * Updated to Squirrel 2.1


2006-02-27 "SQUIRREL2_0_5_sqplus_9"

  * Added Ben's changes to implement DECLARE_INSTANCE_TYPE_NAME
    (http://www.squirrel-lang.org/forums/635/ShowPost.aspx)


2005-12-22 "SQUIRREL2_0_5_sqplus_8"

  * Added GetVMSys() and SetVMSys() to better support multiple VM's


2005-11-21 "SQUIRREL2_0_5_sqplus_7"

  * Added modular support for const member functions. Defining
    SQPLUS_CONST_OPT before including sqplus.h enables the added
    functionality

  * SqPlus tested on Mac OS-X


2005-11-03 "SQUIRREL2_0_5_sqplus_6"

  * Fixed inheritance issue: tables added to classes are not newly
    created upon instantiation- they must be cloned during
    construction (language design)

  * Reworked projects build settings to better allow building all
    projects types: Debug, Release, Debug - Unicode, Release - Unicode


2005-11-01 "SQUIRREL2_0_5_sqplus_5"

  * Added Unicode support


2005-10-23 "SQUIRREL2_0_5_sqplus_4"

  * Added gcc support:
      - Added simple GNU Makefiles for gcc
      - Minor code changes for gcc compilation
      - Tested on RH Linux gcc 3.2.3, Cygwin gcc 3.4.4, and gcc on Sony PSP
      	(http://www.squirrel-lang.org/forums/420/ShowPost.aspx#420)

  * Added ClassDef::enumInt() for registering enums as ints 
    (to replace ClassDef::constant((int)myEnum))


2005-10-14 "SQUIRREL2_0_5_sqplus_3"

  * Added support for SquirrelObject as a function argument and return
    value. Tables and arrays can be directly accessed without using
    the stack. This also makes it possible to return tables, arrays,
    classes, and closures for later use at runtime, saving look-up
    overhead

  * Added GetRet() for SquirrelFunction<> to ensure proper stack
    behavior

  * Added additional error return info to help with debugging

  * Removed unused code