File: CHANGES

package info (click to toggle)
neko 2.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 2,344 kB
  • sloc: ansic: 19,327; ml: 4,924; sh: 75; makefile: 24
file content (358 lines) | stat: -rw-r--r-- 16,918 bytes parent folder | download
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
2017-12-19 : 2.2.0
	nekotools : added `nekotools boot -c *.n`, which generates a C file that contains the input Neko bytecode (#130)
	nekotools : fixed `nekotools boot` not able to find neko when a value in PATH does not have a trailing slash (#148)
	cmake : recognize common install location variables by using GNUInstallDirs
	cmake : fixed various build issues, particularly for FreeBSD (Thanks, ppenzin!), and cygwin
	cmake : added NekoConfig.cmake to ease building ndll or native program using Neko with CMake
	cmake : replaces WITH_NDLLS with WITH_* (#157)
	cmake : does not recompile nekoc/nekoml unless RECOMPILE_NEKOC_NEKOML (#171)
	all : added NEKO_MODULE_PATH in neko.h that points to the installation path of the ndll files
	std : bugfix in utf8_compare (https://github.com/HaxeFoundation/haxe/issues/5308)
	ssl : handle MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY (#150)
	ssl : allow partial failure on loading certificates (#160)
	mysql : use eof terminated string when appropriated (#159)
	jit : disable jit for win64, which never worked
	all : introduced NEKO_BIG_ENDIAN and NEKO_LITTLE_ENDIAN to replace IS_BIG_ENDIAN, IS_LITTLE_ENDIAN, LITTLE_ENDIAN, BIG_ENDIAN, and BYTE_ORDER
	all : renamed TAG_BITS to NEKO_TAG_BITS
	all : add NEKO_JIT_DISABLE and NEKO_JIT_DEBUG CMake options
	all : VS2015 and 2017 compatiblity (#133 #172)
	sqlite : fixed reading 32-bit int from sqlite (#167)

2016-05-08 : 2.1.0
	all : switched to use CMake for building (#122)
	mod_neko/tora : use remote_ip (fixes Apache 2.2 returning 0.0.0.0 in 64 bits ?)
	std : added buffer_get_length
	std : added socket_send_to and socket_recv_from for UDP, added socket_set_keepalive
	all : increased max codesize from 65K opcodes to 1M
	nekoc : allow break/continue in try/catch
	std : bugfix in utf8_compare
	vm : added $sget16/$sget32/$sgetf/$sgetd, $sset16/$sset32/$ssetf/$ssetd, and $itof/$itod/$ftoi/$dtoi
	vm : bugfix with arrays/strings having length >128MB 
	jit : bugfix on some GCC versions causing invalid array access
	std : fixed escaping of arguments in process_run
	all : nekotools boot executable can now be safely striped on Linux (#86)
	all : nekotools boot now looks for the Neko VM binary in cwd, $loader.path, and PATH in order (#110)
	std : added epoll support (#67)
	all : libneko can now be loaded from current directory
	all : libneko is now versioned
	vm : comparisons with NaN and Int/Float now always returns false
	api : added kind_lookup (#6)
	mod_neko/tora : distribute ndlls compiled against Apache 2.4 (can still manually compile against Apache 2.2)
	mysql : use MariaDB's LGPL connector/c instead of MySQL's GPL connector/c (can still use MySQL for compilation)
	all : copyright to Haxe Foundation instead of Nicolas and other license clean up (#102)
	
2013-02-23 : 2.0.0
	all : changed license to MIT
	mod_neko+mod_tora : fixed issue with get_client_ip in 64 bits mode /gcc
	mysql : added support for timestamp to date conversion
	std : added merge_sort native implementation
	std : added mem_local_size
	regexp : fix in regexp_match, ^ no longer match if pos > 0
	tools : don't abort server on invalid http request
	std : fixed sys_command error code (was <<8 on Linux/OSX)
	nekoc : added -version which adds Loop opcode and ensure correct $array evaluation order
	vm : support for bytecode version and new Loop/MakeArray2 opcodes
	mod_neko/tora : only mix POST with GET params if content-type contains 'urlencoded'
	mysql5 : added charset support check for escape()
	nekoc : fixed bug with switch tables where max >= 256
	neko : int32 is now a first class value
	std : md5 and hashing now takes the int32 value into account
	neko : max array/string size is now 256MB instead of 512MB
	std : date_new("YYYY-MM-DD") now uses localtime instead of UTC (same as Y-M-D H:M:S)
	neko : fixed missing stack for array write in interp mode with invalid index
	neko : added "-version" to print version and exit
	
2011-09-10 : 1.8.2
	vm : use 15 digits (instead of 10) for float display
	std : allow up to 512MB array/string size in serialize (instead of 1MB)
	std : bugfix in utf8 (with 4 bytes codes)
	vm : finalizers bugfix on Windows
	std : added sys_thread_cpu_time()
	vm : use VEXTERN for neko_kind_module and neko_id_module
	std : hide process console in process_run
	nekoml : added Math core module
	std : fixed timeout error for sockets on Windows
	mod_tora : added PROXY_MODE configuration
	std : fixed timeout error for sockets on Linux
	vm : fixed $int and $float - return null on invalid strings
	mysql : added result_get_fields_names
	gc : prevent issues with AV softs / GoogleDesktop which inject threads
	vm : use sse2 for fp calculus on gcc (double precision, same as msvc/flash)
		removed in updated build (some CPU are not compatible)
	mysql : added support for BINARY(size) type
	vm : keep stack infos for object/array ops (interp)
	std : added thread_stack
	vm : added $fasthash
	mysql5 : fixed 5.5 protocol change
	std : fixed sha1 for 64-bits (also fix mysql5 auth)
	std : added make_sha1
	mysql : added set_conv_funs for string + bytes wrapping support

2009-07-26 : 1.8.1
	nekoc : small fix in evaluation of using jump tables for switch on integers
	regexp : use a recursion limit to prevent stack overflows in pcre
	mysql5 : completely rewrote mysql client
	mod_tora : complete rearchitecture with abstract protocol
	std : added socket_set_fast_send
	mod_tora : use socket fast send to optimize timing
	mod_tora : fixed bug when .n file does not exists
	mod_tora : fix for Apache 2.x - does not set the content-type if declined
	mod_tora : added port range configuration (for random tora server)
	std, mod_tora : propagate jit mode to created threads
	nekoc : optimization for debug infos : precompute file table at compile-time
	threads : added neko_gc_register_thread (but buggy, so not used)
	mysql5 : added 5 hours network timeout while waiting for an answer
	mysql5 : fixed some additional errors handling
	mysql5 : allow big requests (more than 16MB)
	vm : optimize object table - one word and one memory block saved per object
	jit : one more crash fix for the + operation and unexisting overloaded operator
	nekoml : added Sys.is_directory, Sys.read_directory and Regexp.split
	nekoml : don't allow empty match
	vm : create pthreads in detached mode (prevent leak on osx/linux)
	std : added math_fceil,math_ffloor,math_fround,math_int,process_kill
	nekoc : forbidden usage of 'var' outside blocks

2008-09-23 : 1.8.0
	added mod_tora (neko application server)
	changed mod_neko get_host_name : return the http host instead of the server IP
	bugfix in nekoml : fixed usage of nekoml.std + added -nostd
	std : added EINTR handling in send/recv socket operations and fread/fwrite
	gc : upgraded windows version to 7.1
	vm : fixed comparison of bool
	vm : moved threads stuff into threads.c
	nekoml : fixed lexing engine, allow escape sequences in char groups
	mysql : link with thread_safe version on linux
	std : fixed threads issues with host_resolve and host_reverse
	libs : compile with -pthread on linux/osx to ensure thread safety
	main : turned ON jit by default for bootable executables
	std : added set_trusted primitive
	gc : use alloc_ignore_off_page for large blocks
	gc : use finalizers with no_order (prevent cycles)
	mysql : prevent hashing the fields that looks like inner requests
	vm : optimized global fields cache
	std : string_split doesn't copy the string anymore if the pattern is not found
	vm : added neko_vm_dump_stack
	std : use per-thread locale on POSIX systems
	std : url_encode does not encode anymore - and . chars
	std : fixed sleep() for unix (more accurate and deal with signals)
	std : added module_read_string and module_set_name
	std : fixed some file descriptor issues with processes and threads
	jit : fixed crash whith unsupported OO overloading
	vm : added $getkind and $iskind builtins
	std : added same_closure for closure comparison

2008-07-28 : 1.7.1
	nekotools : fixed set_return_code in web server
	std : display windowed application in process_run
	mod_neko : allowed to uncache module with set_main(null)
	mod_neko : use strmcpi for set_header("Content-Type")
	nekoc : one last fix for big arrays (first element was not compiled)
	mod_neko : added get_http_method
	nekoml : minor fixes in lexer
	nekoml : added -pack and -use, auto build nekoml.std
	include nekoml as part of standard distribution
	vm/security : $smake now fills the string with 0
	std/int32 : fixed need_32_bits macro (negative values)
	bugfix : >> and >>> were reversed in JIT
	bugfix : date functions are now MT-safe
	removed context.h and context.c
	added lock and tls multithread API to neko.h
	std : added date_get_tz()
	mod_neko : added log_message
	regexp : fix for unmatched optional groups, return null instead of empty string
	threads : for windows, use critical_section instead of mutex for locks
	threads : for posix, use a recursive mutex which match windows behavior
	std : added mutex and deque api (threads)

2008-03-16 : 1.7.0
	nekoc : allow binary ast format with -p, don't allow inline nxml
	std : allow int32_new float parameter
	vm : reduce debug infos memory size by 16
	vm : fixed $int in case of overflow
	regexp : upgraded windows ndll to use pcre 7.3 with utf8 support
	fixed : math_round(0.5) is now 1
	fixed : date_set_hour and date_set_day crash with invalid dates
	fixed : bug in vm/callback.c when stack address is >2GB
	sockets : added support for socket_poll for Windows
	sockets : added socket_poll_prepare and socket_poll_events
	thread : added tls_create, tls_set, tls_get
	vm : threaded interpreter (gcc only)
	vm : always use COMPACT_TABLE for objects
	mod_neko : log some errors into apache log
	neko+vm : added perf statistics hooks (-stats)
	mod_neko : scriptable configuration and statistics
	regexp : allow more than 10 matches
	std : added process_close
	vm : added $aconcat
	nekoc : fixed big arrays declarations
	std : added sys_is64

2007-07-25 : 1.6.0
	display error message when uncaught exception in neko thread
	fix bug in long run JIT programs : no C functions callable anymore
	use a smarter way to prevent C stack overflow
	nekoc : stack align error message
	set max-stack-per-function to 128 and default-stack-size to 256
	jit now check stack overflow on function entry and not on every push
	mod_neko2 set MOD_NEKO=2 env var (for version detection)
	mod_neko2 : remove Apache 2.0 error message, use 302 http code for redirect
	fixed fallback of interp operator overloading
	fix for 64-bit CPU
	minor optimization for [0] jit array access
	gnuk/freebsd support
	fixed thread messages on Windows (do not use system queue)
	thread_current returns unique value
	remove kind_import, kind_export, added kind_share
	added ui library
	added libs/std/process api functions
	new binary ast format (faster than nxml)

2007-01-28 : 1.5.3
	minor fixes in mod_neko multipart and POST data handling
	fixed $objremove result (was always true)
	fixed one-last-bug when using more-than-five-arguments method call return value
	fixed bug in dev webserver when accessing a directory
	added xcross support
	fixed bug with $setresolver in bytecode interpreter
	changed bootable vm implementation (easier, allow compressed bin)
	added .mode in sys_stat
	change in $version format

2006-11-22 : 1.5.2
	fixed std math_pow float
	minor thread cleanup
	added MySQL5.ndll for Windows
	fields hash cache is now global (instead of per-thread)
	socket_select retry on EINTR
	fixed under-second lock timeout for Linux/OSX
	added socket_poll for Linux/OSX (emulate with select() on Windows)
	fixed compilation bug when accessing 'this' in arguments and more than 5 args
	fixed string_split with empty string (was causing infinite loop)
	fixes in more-than-five-arguments-calls
	added $varargs

2006-10-29 : 1.5
	neko web server : get_client_header is now case-insensitive
	std : new thread and lock api
	neko : when run from commandline, SEGV on Linux are turned into exceptions
	+ added mod_neko2 error if used with Apache 2.0.x

2006-10-09 : 1.4.5
	sqlite : added BOOL handling
	jit : added mmap support (for execution protection)
	jit : fixed bug when unsupported operation exception
	vm : fixed bug in debug infos reading when nfiles > 255
	vm : fixed bug in interp -> jit call
	vm : default NEKOPATH is now the same on OSX/Linux
	vm : optimized debug infos runtime memory size
	std : added misc.c (float & double bytes manipulations + gc/vm functions)
	std : fixed buf in sys_read_dir on windows (directory not closed correctly)
	std : added sys_getch, sys_get_pid
	std : fixed socket_host (was returning the same as socket_peer)
	std : improved performances of serialize/unserialize
	allowed break & continues in try/catch if they don't break outside
	nekoml : fixed bug in lexer allocating too bug memory when small reads
	nekotools : bugfixes in server, added static file streaming
	nekotools : fixed boot for universal binaries
	mod_neko : minor updates for better memory handling
	mod_neko : use soft timeout for Apache 1.3

2006-08-02 : 1.4
	std : added a SO_REUSEADDR before socket_bind (except windows)
	nekoc/nekovm : allowed more than 127 filenames in debug infos
	nekotools server : added -rewrite for mod_rewrite'style urls
	added zlib wrapper
	mod_neko for apache 2.0
	added sqlite wrapper
	std : fixed socket_set_timeout (changed unit from millisec to seconds)
	std : fixed math_pow (integer overflow) , fixed readdir (missing closedir on Linux)
	added PPC registers
	neko.h : added NEKO_* OS/CPU flags
	added JIT for x86
	vm : (int mod 0) is now an exception (and not NaN)
	neko.h : added kind_import and kind_export to share abstracts between libraries
	std : handle signals in socket send and recv
	allowed OSX universal build
	added $setresolver for unknown object field handling

2006-05-11 : 1.3
	neko : fixed endianness bug needed to boot, exported neko_is_big_endian
	neko : fixed bug on Linux x86 gcc with object operators (eax get overwritten)
	neko : fixed bug : error when __string or __compare does not exist
	neko : allowed runtime printer redirection (+ added std@print_redirect)
	neko : defined a default NEKOPATH when not specified (less configuration)
	neko : fixed int32 calculus bug (need_32_bits macro)
	neko : fixed calls with a lot of arguments (some cases were failing)
	neko : fixed preservation of 'this' through tailcall, if changed inside the call
	neko : added unary operator minus parsing
	neko : fixed error reporting of unclosed parenthesis
	nekoml : added Net core module for sockets
	nekoml : when catching Neko errors, wrap them using Neko_error constructor
	std : supported serialization of C primitives and __serialize/__unserialize overrides
	added nekotools (merged nekoboot and neko webserver)
	std : fixed math_round, fixed math docs
	std : fixed bug in utf8_resize, utf8_get and utf8_iter.
	regexp : added regexp_new_options for matching options and regexp_replace_fun
	regexp : fixed invalid matched length when not index 0
	added some benchmarks in src/benchs
	neko : fixed $ablit and $sblit (when used with same array/string)
	neko : fixed multithread win32 support
	mod_neko : changed Content-Type handling for POST data
	std : added blocking sockets support
	std : changed sys_time to sys_cpu_time, added sys_time (local time).
	std : fixed put_env on Linux (GC issue)
	cleanup of some stuff needed by experimental JIT
	std : added memory module

2006-01-09 : 1.2
	nekoc:
		added linker : provide linked versions of neko & nekoml compilers
		added tail calls optimization
	nekoml:
		little improved nekoml->neko patterns generator
	libs:
		added md5 digest , utf8 api and base_encode/base_decode in std
		some changes in mod_neko api
		mysql api now threat tinyint(1) as booleans
		improved xml parser : support for doctype
		some fixes for OSX and C++ compilation
	neko:
		renamed 'nekovm' to 'neko'
		experimental jit support
		object prototypes
		moved args from builtin ($args) to loader ($loader.args)
		makeboot can create standalone binaries
		runtime errors on :
			- calls with invalid number of arguments
			- field accesses of not-an-object
			- binary operations on invalid types
			- array accesses on not-an-array and not-an-object
	license change : from GPL to LGPL

2005-11-10 : 1.1
	vm :
		ports PPC (big endian) and AMD64
		added stack conservation check at bytecode loadtime : faster VM runtime
		some more opcodes for better speed
		added exception and call stack traces
		added debug informations for bytecode
		added dispatch tables (for integer switchs)
		tuned GC usage
		reorganized VM apis
	neko:
		added labels in the language specification
		added $goto and $apply
		added switchs
		added documentation generator
	nekoml:
		added NekoML
		bootstrapped the language (no more need for ocaml)
	libs:
		rewrote and completed standard library
		added generated documentation

2005-08-17 : 1.0
	compiler in ocaml
	virtual machine
	mod_neko
	some small libraries