note: Download our releases | History of our releases
-
added
flash.display.Spriteclass
should allow to use MXMLC to compile
SWF depending on SWC and produce
bytecode compatible SWF for redtamarin -
updated components, documentation
and AVMGLUE API to take into account
theSpriteclass -
added
apt-cygto our own repo
inextras/cygwin -
changed
apt-cygdownload path to
https://raw.githubusercontent.com/corsaair/redtamarin/master/extras/cygwin/apt-cyg
fix #72 problem with apt-cyg in redtamarin-setup.bat -
added support for binfmt_misc
inextras/linux
see https://github.com/Corsaair/redtamarin/wiki/LinuxBinfmt_misc
-
added
patchto versioning
version.major=0
version.minor=4
version.patch=1
version.serie=1
version.cycle=T
version.build=180 -
change in API
we changed the format of the description from:redtamarin-0.4-beta[1T180]
to:redtamarin-0.4.1.1T180-beta
example:
Runtime.description = redtamarin-0.4.1.1T180-beta
also
Runtime.redtamarin = 0.4.1S131
replaced by
Runtime.version = 0.4.1.1T180
but version is anObject
so you can also access
Runtime.version.major = 0
Runtime.version.minor = 4
Runtime.version.patch = 1
Runtime.version.serie = 1
Runtime.version.cycle = T
Runtime.version.build = 180also
Runtime.version = 2.1 cyclone
replaced by
Runtime.AVMversion = 2.1 cyclone -
added new properties
Runtime.tag = 1T180
Runtime.codename = Akihabara
Runtime.label = beta -
Runtime.redtamarinis marked deprecated
and will be removed in 0.4.3 -
added
flash.system.Securitymock
for redtamarin SWC compatiblity -
cleaned up comments in
shell.OperatingSystem
see Impl Of OperatingSystem -
added complete OS detection in
shell.OperatingSystem
mainly based on env vars, files and parsing -
updated builds for Windows / Mac OS X / Linux
to be in sync with the wiki documentation
see Developer Environment -
added some options to the build
for Mac OS X, now we can select the Mac OS X SDK
and some updates inconfigure.pyto supports all
SDK:104u,105,106,107,108,109,1010or1011
for Windows, the build autodetect the python exe
for Linux, some updates inconfigure.pyto supports GCC 4.8.*
andbuild.makejobswhich allow to setup the number
of make jobs to run silmutaneously (default to 3 for dual core) -
fixed
shell.RunModedocumentation -
added
shell.ShellType
ShellType.RUNTIMEfor when executed by redshell
ShellType.PROJECTORfor when executed by a projector
ShellType.SCRIPTfor when executed as a shell script -
new property in Program
Program.type = ShellType.RUNTIME; -
implemented issue #14
need to support projectors arguments -
added extras
inextras/windows/
redtamarin-setup.bat
the Redtamarin Windows Environment Setup
batch file for end-users who want to sue redtamarin
inextras/cygwin
redtamarin-dev-setup.bat
same as above bur for developers who want to compile under Windows
also updatedreadme.txtwith usage/documentation/tutorial/etc. -
add build/build32and64 bash script helper to build both 32-bit and 64-bit binaries under Windows
-
added
shell.Cygwinhelper class
it can detect if Cygwin is installed, the install dir
and allow to call bash even from cmd.exe or other non-bash
environment like running as CGI -
fixed
C.stdlib.exec()asdoc -
fixed
Cpackage
implementation ofargc,argvandenvironhave changed
and now the doc is showing in asdoc
note: we need to sync changes with as3shebang
DON'T DO THAT
see Corsaair#58 -
duplicated asdoc for
src/as3/C/globals.as
see: https://github.com/Corsaair/redtamarin/wiki/specific-asdoc-for-Redtamarin -
updated Redtamarin asdoc main page
logo, link to wiki doc etc.
and basic descriptions -
removed
Program.findShell
replaced by internal static function_findShell
we do not want the user or have no need to override this anymore
also removedProgram.setShell
updatedboot.asto reflect the changes -
updated
Program.filename
not a constant anymore
because we want to be able to override it
from a shell scripts -
fixed
shell.Domainasdoc -
fixed
shell.Environmentasdoc -
updated
shell.Environment
was bit broken, useProgram.environnow -
fully implemented
shell.Environmentfeatures -
added a new property
Program.environment
which returns a synchronised Environment instance -
edited a lot of asdoc
-
added
set_binary_mode()inC.conio -
rewrite some asdoc
set some rules for special cases
now we use asdoc stubs for cases where
asdoc can not generate the HTML doc
files ending in_asdoc.as -
re-implemented
HardwareInformationmemory usage -
fixed
FileSystem.isHidden()for Windows -
added
mkdirp()inC.sys.statfrom betalib -
added
which()inC.unistdfrom betalib -
added
fcopy()inC.stdiofrom betalib -
added bash scripts to build deb packages
make_deb_mac32
make_deb_mac64
make_deb_nix32
make_deb_nix64
make_deb_win32
make_deb_win64
note:
we build all our packages from Linux
except for the windows one who needs
to be build from WIndows with wpkg
- release redtamarin SDK as zip files
-
now we include
ErrorConstant.as
to be able to throw native errors from AS3 -
lots of update to clean up documentation with asdoc
-
added
VMPI_GetEnviron -
implemented
FileSystemclass AS3 and native -
started to implement
flash.filesystemandflash.netpackage
not finished -
added undocumented class
flash.system.SecurityPrivilege -
implemented
C.sys.socket -
implemented
C.sys.select -
implemented
C.arpa.inet -
updated
C.netdb, and others socket related API -
sockets and select are working for OS X
-
sockets and select are working for Linux
-
updated Windows native API so now socket and file descriptor
can be inerchangeable which then allow to useclose()on sockets -
updated Windows API so socket functions automatically initialize winsock
-
updated
exit()function to automatically cleanup winsock
note: even without explictly callingexit()winsock will be cleaned up
at condition the exit is normal, for abnormal exit winsock will be untouched -
sockets and select are working for Windows
-
added
C.direntbasicclosedir,opendir,readdir -
added more dirent:
dirfd,fdopendir,rewinddir,seekdir,telldir -
added in
C.fcntl:creatandopen -
MAC OS X does not have
fdopendirso we implmented it -
added non-standard function
getdirentries()impl. in AS3 -
refactor on
fcntl, now asdoc indicate when options are compatible for POSIX(mac/linux), WIN (Windows only, MAC (Macintosh only), and NIX (Linux only) -
in
fcntl, addedopenat()andfcntl()for POSIX (mac/linux) -
in asdoc added WIN, MAC, NIX and POSIX as "Runtime Versions" target
how to use:
@langversion 3.0
@playerversion AVM 0.4
@playerversion POSIX + -
oh and from now on we doublecheck our POSIX compatibility with gnulib
we can not compile with gnulib but at least we can correct few things
this and there -
changed source and sdk path to use "macintosh" and not "darwin" or "osx"
-
added new folder "extras"
-
added extra for DocBlockr package used with Sublime Text
-
reimplemented fully
errno.h,
now we support all constants for all OS -
fully implemented
limits.h,
with support/compat for all OS -
added the option to generate fat swc for
redtamarin.swc -
update includes and sync for Linux
-
fixed windows build
-
update includes and sync for windows
-
compile under Windows but some implementations are missing
eg. some POSIX function will return-1and seterrno = ENOSYS -
fixed redtamarin description for Windows
cygwin will not accept'--enable-desc=redtamarin-0.0-unknown[0A000]'
and display "AVMPLUS_DESC is not supported on windows via cygwin make. Ignoring description." so we also generate an include on the fly 'src/as3/shell/description.incl'
fixed:Runtime.description,Runtime.redtamarin -
Windows fix:
stat, now we have correct file size, date stamp etc. -
Windows fix: the basic event loop (alpha quality) is working,
yep Windows cangoAsync()too -
Windows implement:
HardwareInformation.memory,
HardwareInformation.memoryUsage,HardwareInformation.memoryPeakUsage -
Windows implement for
C.sys.stat:
chmod(),mkdir(),stat()now supports UTF-8 -
Windows implement for
C.stdlib:
getenv(),putenv(),setenv(),unsetenv(),
realpath(),system()now supports UTF-8 -
Windows implement:
Program.environnow supports UTF-8 -
Windows implement for
C.stdio:
perror(),popen(),remove(), `rename() now supports UTF-8 -
Windows implement for
C.unistd:
access(),chdir(),getcwd(),getlogin(),rmdir(),unlink()now supports UTF-8
note: notgethostname()becauseGetHostNameWis min supported by WIN8+ -
Windows implement for
C.string:
strchr(),strdup(),strerror(),strlen(),strncpy(), etc. now supports UTF-8 -
Windows note:
execv(),execve(),execvp()do not now supports UTF-8 yet -
stabilize macintosh build, some fixes and bolts
-
removed FileIO class
-
added/implemented
FileSystemclass
-
BRAND NEW REFACTOR NO BACKWARD COMPATIBILITY
-
updated to latest tamarin-redux tips
5571cf86fc68 -
reorganized directory structure
-
patched
configure.pyto support OSX 10.8 SDK -
new ant build
-
integrate good asc.jar (not in repo)
-
integrate asc2.jar from FlasCC 1.0 (not in repo)
-
reuse $AVMSHELL_EXE (ant var) in $AVM and $AVMSHELL_TOOL (env vars)
which can be either avmshell-release, avmshell-debug, avmshell-debug-debugger -
cleanup
shell_toplevel.as
removed all extraneous tests, ns, metadata
removed all avmplus package (AbstractBase, NativeBase, CheckBase, etc.)
removed all test library code for API versioning -
cleanup
SystemClass.handSystemClass.cppto be in sync with as3 class -
cleanup
ShellCore.cpp, removedVMCFG_VERIFYALLandconfig.verifyonlycheck
forNativeBaseClass,ShellCoreFriend1Class,ShellCoreFriend2Class, etc. -
moved
flash.errors.*classes toflash_errors_classes.asand updated builtin scripts -
now we integrate avmglue in
shell_toplevel.py
tested withflash.errors.*package -
manifest.mknow have VMPI extensions (eg. all the *2.h files) -
manifest.mknow includes api/clib and api/shell -
updated
VMPI_getOperatingSystemVersionNumbers(int*, int*, int*)
under OSX 10.8 ‘Gestalt’ is deprecated and there is no replacement
for now we return0.0.0
need to do a new implementation later -
reimplemented clib
errno.as/CErrnoClass.h/CErrnoClass.cpp
removed get/set errno
replaced by an ErrorNumber class and an errno const
stdlib.as/StdlibClass.h/StdlibClass.cpp
updated StdlibClass::exit to support workers
unistd.as/UnistdClass.h/UnistdClass.cpp
updated UnistdClass::sleep to reuse vmthread -
moved all avmplus/shell/avmglue AS3 classes in the
/src/as3/directory -
updated
exactgc.pywith the correct paths
before:
gen(prefix = 'avmshell', inputfiles = 'shell_toplevel.as DebugCLI.h ShellCore.h SystemClass.h', outputdir = outdir, srcdir = shelldir, ns = 'avmshell')
gen(prefix = 'extensions', inputfiles = 'DomainClass.h Domain.as ../extensions/*.h ../extensions/*.as', outputdir = outdir, srcdir = shelldir, ns = 'avmplus')
after:
gen(prefix = 'avmshell', inputfiles = '../as3/avmplus/System.as DebugCLI.h ShellCore.h SystemClass.h', outputdir = outdir, srcdir = shelldir, ns = 'avmshell')
gen(prefix = 'extensions', inputfiles = 'DomainClass.h ../as3/avmplus/Domain.as ../extensions/*.h ../extensions/*.as', outputdir = outdir, srcdir = shelldir, ns = 'avmplus') -
for API versioning ALWAYS include
/src/core/api-versions.as
when generating documentation from asdoc
but inbuiltin.pynever include/src/core/api-versions.as
as we include it by default -
added public method
getShellClasses()toShellCore
to easily get the shell_toplevel ClassManifest -
clean redtamarin logo for asdoc
-
now build a
redtamarin.abc
(that mergebuiltin.abcandshell_toplevel.abc)
see src/ forredtamarin.py -
both components
redtamarin.swcandredtamarin.abcreuse the same
redtamarin.asfile from src/ -
shell_toplevel.pyuse the sameredtamarin.asthanredtamarin.py -
forced to update the way we deal with versioning
only builtins can useCONFIG::AIR_1_0etc.
when you are defining avmglue API you need to useAVMGLUE::AIR_1_0
also when you compileshell_toplevel.pyandredtamarin.py
you will need to define'-config AVMGLUE::REDTAMARIN=true'
to create the namespace -
documented zavm2.intrinsics.memoryz and integrated in asdoc
if it keeps going like that our doc will be better than Adobe -
and tons more stuff
-
in toplevel modified the
getClassByName()signature to
public function getClassByName( name:String, domain:Domain = null ):Class -
moved most of
flash.utils.*from avmglue intotoplevel.abc -
removed
System.profileinitialization in anonymous package -
System.profileis lazy inited now -
System.OperatingSystem, now_parseLinuxReleaseFilehas a try/catch
fix issue 44 and 46 -
added
pathSeparatorinFileSystem -
now the
Domainclass useavmplus.FileSystem
fix issue 38 -
added
getErrno()/setErrno()functions inC.errno.* -
added getter/setter
receiveTimeoutinavmplus.Socket
see issue 47 -
added getter/setter
sendTimeoutinavmplus.Socket
see issue 47 -
added property
readableTimeoutinavmplus.Socket
see issue 47 -
added property
writableTimeoutinavmplus.Socket
see issue 47 -
added
blockinggetter/setter inavmplus.Socket -
added constants to
C.errno
EWOULDBLOCK,EINPROGRESS,EALREADY,EDESTADDRREQ,EMSGSIZE,EPROTOTYPE,
ENOPROTOOPT,EADDRINUSE,EADDRNOTAVAIL,ELOOP,EHOSTDOWN,EHOSTUNREACH -
now we send the correct socket error message under WIN32
-
added static version property in
Socket
under WIN32 returns "Winsock 2.2" or "Winsock 2.1", etc.
under OSX/Linux returns "Berkeley sockets" -
added a static
isSupported()method inSocket
returnfalsein very special cases
(eg. a very old version of Windows who could not
initialize winsock for ex) -
added static method
getErrorMessage()toSocket
to returns the correct message string from a socket error -
now use a pre-compiled
asc.jarfor the time being
later when we will be able to sync with tamarin-redux
then we should be able to build ASC from sources again -
added the interface
StandardStreaminavmplus -
added the
hack_sysnamespace -
added
stderrWrite( bytes:ByteArray ):voidinSystem -
moved
getStdinLength(),stdinRead(),stdinReadAll(),stdoutWrite(),stderrWrite()
under the namespacehack_sys -
added implementation of
StandardStreamOut,StandardStreamErrandStandardStreamIn -
added
stdout,stderr,stdinproperties inavmplus.System -
added
NONBLOCKING_ENABLE,NONBLOCKING_DISABLEinC.stdio -
added
O_TEXT,O_BINARYinC.stdio -
added
kbhit()inC.stdioto know when keyboard hit -
added
con_stream_mode()inC.stdioto change console to non-blocking or blocking mode -
added
con_trans_mode()inC.stdioto change console to binary or text mode -
updated
getRedtamarinVersion()inavmplus.Systemto "0.3.2"
-
added build for OS X 10.5 Leopard
-
added build for components:
builtin.swc,clib.swcandredtamarin.swc -
removed
debugger()fromavmplus.*package -
removed
Capabilitiesclass fromflash.system.*package (will be re-added in avmglue) -
removed
getTimer()from toplevel (will be re-added in avmglue) -
fixed
System.exec()- issue 30
was not declared as static -
added
avmplus.profiles.*withProfile,TamarinProfile,RedTamarinProfile, etc. -
added
System.profile -
fixed
FileSystem.exists- issue 28
no we useaccess( filename, F_OK ) == 0
instead of a native impl. -
fixed small memory leak in sockets - issue 29
every 'new' need a 'delete' even on the heap -
avmglue v1 is available on its own repo
-
added
System.eval()
-
created
C.socketAS3 for C socket const
(POSIX only, eg. AF_INET, SOCK_STREAM, etc.) -
added
errorconst for sockets inC.errno.*AS3
(POSIX only eg. ENOTCONN, ECONNREFUSED etc.) -
created
CSocketClass -
created
Socket,PosixSocket -
added socket methods to
Platform,PosixPartialPlatform -
created
SocketClassandavmplus.SocketAS3 -
documentation
-
port to WIN32 impl of
WinSocket
SOCKETare casted asint
small changes -
added
gethostbyaddr()andgethostbyname() -
forced to use a
VMPI_gethostbyaddr()for some small
difference between POSIX and WIN32 -
sync with tamarin-redux tip
d8b78be5b40f(22/12/2010) -
better integration of redtamarin features
/VMPI/VMPI.h-> original Tamarin
/VMPI/VMPI2.h-> redtamarin extensions
/platform/mac/mac-platform.h-> original Tamarin
/platform/mac/mac-platform2.h-> redtamarin extensions
/VMPI/PosixPortUtils.cpp-> original Tamarin
/VMPI/PosixPortUtils2.cpp-> redtamarin extensions
etc. -
added
chdir()andunlink() -
re-integrated all of clib, tested only on OSX
-
changed some logic in
ShellCoreandavmshell
now when you embed your abc in a projector
you don't need to use -- before passing your arguments -
System API now have a
programFilenamegetter that returnsargv[0]
System.executablePathandVMPI_getExecutablePathremoved -
re-integrated all of clib for WIN32 and tested
-
fixed VMPI_realpath for WIN32
-
re-integrated all of clib for UNIX and tested
-
re-integrated all
OperatingSystem -
re-integrated all
FileSystem -
changed and moved System, now it's more redtamarin centric
eg. we add what we need for our API -
a lot of work on
FileSystemadded:currentDirectory,parentDirectory,
extensionSeparator,drives,lineEnding,separators,getFileSize(),
getLastModifiedTime(),getBasenameFromPath(),getDirectoryFromPath(),
getExtension(),hasDriveLetter(),isEmptyDirectory(),isSeparator(),
isNotDotOrDotdot(),listFilesWithFilter(),listFilesWithRegexp(),
remove(),removeFile(),removeDirectory(),stripTrailingSeparators() -
added beta features to read/write binary to stdin/stdout
stdinLength,isStdinEmpty(),stdinRead(),stdinReadAll(),stdoutWrite() -
added more functions to
FileSystem:isAbsolutePath(),absolutePath(),
containsPath(),copyFile(),copyFiles(),createDirectory(),
endsWithSeparator(),ensureEndsWithSeparator(),normalizePath(), etc. -
added system locale detection
OperatingSystem.language,OperatingSystem.country,
OperatingSystem.locale,OperatingSystem.codePage -
added
C.unistdgetpid()andSystem.pid -
added
FileSystem.homeDirectoryandFileSystem.rootDirectory -
added
System.shellandSystem.popen() -
added
Socket.localAddresses -
added
getpeername(),getsockname()inC.socket.* -
added socket instance
localandpeerproperty
to get the "address:port" on connected sockets -
refactored
receiveFromandsendTowith real implementation ofrecvfrom()andsento() -
refactored
Socket, now everything useByteArrayon the C++ side
methods usingStringon the AS3 side usereadUTFBytes() -
Socket.bind()can define the interface where to bind
(before was hard coded "127.0.0.1") -
now receive functions can define a custom buffer
receive()default buffer is1024
receiveFrom()default buffer is512 -
added utility methods
receiveAll()etc. -
the AS3 Socket class is now dynamic
and have callback functions for all methods
eg.connect()->onConnect(),bind()->onBind()
those callbacks can be overrided by the user
eg.mysock.onBind = function() { //do whatever } -
added readable/writable properties to
Socket
they reuse a non-blockingselect()in the background -
added
Socket.maxConnectionQueueandSocket.maxConcurrentConnection -
fixed a memory bug with Socket where the buffer was GC'ed and crashed (added a write barrier)
-
fixed a bug with
send()etc., needed to null terminate theByteArraydata -
"hacked"
FD_SETSIZEto change the limit of concurrent connections to4096:p
FD_SETSIZEis limited to1024under OS X (maybe the same for Ubuntu?)
and limited to64under Windows -
removed
INADDR_ANYandINADDR_BROADCASTinC.socket.* -
added
MSG_DONTWAITinC.socket.* -
added
SetNoSigPipe()tosocket.h
now by default we desactivateSIGPIPE -
fixed bugs in
receiveAll()andreceiveBinaryAll()
-
added
VMPI_chmod -
updated
VMPI_getFileModefor WIN32 -
added
dirent.himplementation for WIN32 -
added
listFiles()inavmplus.FileSystemAS3 -
added
VMPI_getOperatingSystem,VMPI_isNullTerminated,VMPI_int2char -
added
avmplus.OperatingSystemAS3 -
added
VMPI_gethostname,VMPI_getUserName -
added
gethostname()andgetlogin()inC.unistd.*AS3 -
full Operating System informations (name, nodename, username, hostname, release, version, machine,
vendor, vendorName, vendorVersion, vendorDescription, codeName) -
added
VMPI_sleepPOSIX -
added
sleep()inC.unistd.*AS3 (POSIX only) -
added
VMPI_getDiskSpace,VMPI_getTotalDiskSpace -
added
getFreeDiskSpace(),getTotalDiskSpace(),getUsedDiskSpace()inavmplus.FileSystemAS3
-
added
VMPI_rmdir,VMPI_mkdir,VMPI_remove,VMPI_rename -
added
C.stdioin AS3 andStdioClassin C/C++ -
added
VMPI_realpathPOSIX userealpath(), WIN32 useGetFullPathNameA() -
added
rmdir(),mkdir()inC.unistd.* -
added
remove(),rename()inC.stdio.* -
added
realpath()inC.stdlib.* -
added
S_IFMT,S_IFIFO, ...S_RWXU,S_IRUSR, etc. toC.unistd.* -
added
VMPI_getFileMode,VMPI_isRegularFile,VMPI_isDirectory(POSIX) -
added
getFileMode(),isRegularFile(),isDirectory()inavmplus.FileSystemAS3 -
added
strmode()inC.string.*AS3
-
added
VMPI_access,VMPI_getcwd,VMPI_setenv,VMPI_unsetenv -
added
C.string,C.errnoin AS3 andCStringClass,CerrnoClassin C/C++ -
all tested under OS X 10.6 / Windows XP SP2 / Ubuntu 8.04
-
reorganized everything
-
tamarin-redux is sync'ed on redshell repo
-
our
/tamarin-reduxis updated from a redshell hg archive -
now we use gclient on top of svn
-
/trunkcontains only redtamarin changes
mainly: extensions, platform, shell, VMPI -
added
VMPI_getExecutablePathto replaceargv[0] -
added
System.executablePathinavmplus.*AS3
-
added
System.executablePathto getargv[0] -
added locale/language/languages support
user can override the default locale
with env varsLC_ALLand/orLANG -
added full flash platform API mock