Permalink
Switch branches/tags
Nothing to show
Commits on Dec 2, 2011
  1. Major update part 2

    This finishes off some of the changes introduced in the Nov 25 major update.
    
    1) Stack allocation promotion
    All stack allocations are now promoted to the head of the function call.  This is to help limit stack usage, particularly for inner loops etc.
    
    2) dotimes semantics changed
    dotimes no longer automatically allocates a stack variable. Programmers are now responsible for preallocating variabledefined in the dotimes call.  Additionally, an optional middle argument defines a starting value.  For example:
    
    ;; this prints 5-9
    (definec test
      (lambda ()
        (let ((i:i64 0))
          (dotimes (i 5 5)
            (printf "%lld\n" i)))))
    
    3) LLVM *must* now be 3.0+.  EXT_LLVM_3 is now longer required.  llvmir3 and llvmti3 have been moved back into llvmir and llvmti respectively.
    digego committed Dec 2, 2011
Commits on Nov 29, 2011
  1. Update for OSX

    digego committed Nov 29, 2011
  2. OpenGL for OSX

    digego committed Nov 29, 2011
Commits on Nov 28, 2011
Commits on Nov 25, 2011
  1. A major update for extempore lang

    Proper implementation of memzone with scoped and timed deallocation
    zone-alloc added to heap-alloc and stack-alloc (zalloc salloc halloc)
    alloc defaults to zalloc
    definec now supports additional mem allocation argument (For closed variables)
    Native ExtLang support for timed callbacks
    More type system improvements (bind-alias)
    Better support for global vars
    Command line arguments
    Some build chain mod
    
    Some deprecated stuff:
    
    glut: use gl:make-ctx instead (I will add this for OSX in a forthcoming update)
    make-array, make-tuple: use zone-alloc heap-alloc or stack-alloc instead
    aref and aset! are now for arrays only: use pref and pset! for old behaviour
    digego committed Nov 25, 2011
Commits on Nov 10, 2011
  1. Build mods to make my life easier

    digego committed Nov 10, 2011
Commits on Nov 8, 2011
  1. A couple of config changes

    digego committed Nov 8, 2011
Commits on Nov 2, 2011
Commits on Oct 27, 2011
  1. A few new bindings

    digego committed Oct 27, 2011
Commits on Oct 14, 2011
  1. Removed buggy sys check

    digego committed Oct 14, 2011
Commits on Oct 7, 2011
  1. Bindings for GNU Scientific Library

    Not complete but a pretty solid start
    digego committed Oct 7, 2011
  2. Added bind-alias for user defined type aliases

    The only default type alias is size_t which is
    platform dependant.
    digego committed Oct 7, 2011
Commits on Oct 6, 2011
  1. Added type size_t

    digego committed Oct 6, 2011
  2. A short term hack for windows users

    This needs to be fixed properly but I don't have time at present.
    For some reason the delayed cleanup of memory isn't working properly
    causing a double free.
    digego committed Oct 6, 2011
  3. Added type size_t

    digego committed Oct 6, 2011
Commits on Oct 5, 2011
  1. Some much need OSX build fixes!

    digego committed Oct 5, 2011
  2. Added examples of afill! tfill!

    digego committed Oct 5, 2011
  3. Added new afill! and tfill! variable arg ops

    You can now set all elements of an array or tuple
    using the afill! and tfill! operations.  These
    ops take an array/tuple as the first argument
    and then n number of arguments (up to the full
    length of your array/tuple).
    digego committed Oct 5, 2011
Commits on Oct 3, 2011
Commits on Sep 20, 2011
  1. Windows 7, Boost and LLVM 3 part 2

    This is a major commit (too big sorry!) that touches nearly every file
    in the repo.  There are three signficiant changes represented here:
    
    Firstly there are changes to the extempore lang type system to support
    upcoming changes in llvm 3.0+.  These are generally behind the scenes
    changes but do slightly effect the syntax and semantics of bind-type.
    
    By default extempore still builds (and expects) against the LLVM 2.8
    and 2.9 branches.  Also the examples/extempore_lang.scm file is
    for the 2.8 and 2.9 branches.  If you want to use LLVM 3.0+ you will
    need to compile against a build of the LLVM 3.0+ branch (still in beta)
    and set the EXT_LLVM_3 flag:
    
    ./all -DEXT_LLVM_3
    
    Additionally there is a patch required to make the LLVM 3.0 branch
    compatible.  You'll need to install this patch before you build
    LLVM 3.0.  The LLVM src code patch is supplied as a download option
    from github: click on downloads on the main extempore github page
    and download the llvm 3 patch.
    
    The second major change is to promote cross platform compatibility
    by utilizing the boost libraries.  I'm not much of a fan of boost
    to be honest but it seems to be the best of a bad bunch of options
    at the moment.  This change largely effects networking and threading
    code.  As there is quite a lot of threading and networking code
    in extempore this change touches on many parts of the system and
    potentially adds new bugs/instability.  I hope this is isn't the
    case but ...
    
    By default Extempore will still compile with the old code in place
    (i.e. pthreads and unix sockets).  If you want to compile against
    the boost libraries (instead if pthreads and unix sockets) you
    need to set the EXT_BOOST property.
    
    ./all -DEXT_BOOST
    
    or if you want boost and LLVM 3
    
    ./all -DEXT_BOOST -DEXT_LLVM_3
    
    Finally the boost changes have been made in large part to support
    Windows.  Or more specifically 64bit Windows 7 - I'm not going to bother
    supporting anything ealier.  It MAY work on other Windows systems,
    but I'm not going to be bother testing on them.  Everything currently
    works nicely on Windows 7 64bit.  I'm am using this at work at the moment
    and so can confirm that it is operational and stable.
    
    There is NO official build support for Windows at the moment.  I will
    put a zip file containing my extremetly hacky MSVS 2010 project up
    on github (in downloads - same as patch file) for those who want to
    build their own.  You will also obviously need to install and build
    the Boost, LLVM and PortAudio libraries yourself.  If someone would
    like to put together a nice cmake project for all of this that would
    be wonderful - until that happens your on your own ;)
    
    Because it's a hastle to build all of this on windows I have also put
    a pre-built extempore binary for windows in github downloads.  this
    is for convenience only.
    digego committed Sep 20, 2011
  2. Windows 7, Boost and LLVM 3 support

    This is a major commit (too big sorry!) that touches nearly every file
    in the repo.  There are three signficiant changes represented here:
    
    Firstly there are changes to the extempore lang type system to support
    upcoming changes in llvm 3.0+.  These are generally behind the scenes
    changes but do slightly effect the syntax and semantics of bind-type.
    
    By default extempore still builds (and expects) against the LLVM 2.8
    and 2.9 branches.  Also the examples/extempore_lang.scm file is
    for the 2.8 and 2.9 branches.  If you want to use LLVM 3.0+ you will
    need to compile against a build of the LLVM 3.0+ branch (still in beta)
    and set the EXT_LLVM_3 flag:
    
    ./all -DEXT_LLVM_3
    
    Additionally there is a patch required to make the LLVM 3.0 branch
    compatible.  You'll need to install this patch before you build
    LLVM 3.0.  The LLVM src code patch is supplied as a download option
    from github: click on downloads on the main extempore github page
    and download the llvm 3 patch.
    
    The second major change is to promote cross platform compatibility
    by utilizing the boost libraries.  I'm not much of a fan of boost
    to be honest but it seems to be the best of a bad bunch of options
    at the moment.  This change largely effects networking and threading
    code.  As there is quite a lot of threading and networking code
    in extempore this change touches on many parts of the system and
    potentially adds new bugs/instability.  I hope this is isn't the
    case but ...
    
    By default Extempore will still compile with the old code in place
    (i.e. pthreads and unix sockets).  If you want to compile against
    the boost libraries (instead if pthreads and unix sockets) you
    need to set the EXT_BOOST property.
    
    ./all -DEXT_BOOST
    
    or if you want boost and LLVM 3
    
    ./all -DEXT_BOOST -DEXT_LLVM_3
    
    Finally the boost changes have been made in large part to support
    Windows.  Or more specifically 64bit Windows 7 - I'm not going to bother
    supporting anything ealier.  It MAY work on other Windows systems,
    but I'm not going to be bother testing on them.  Everything currently
    works nicely on Windows 7 64bit.  I'm am using this at work at the moment
    and so can confirm that it is operational and stable.
    
    There is NO official build support for Windows at the moment.  I will
    put a zip file containing my extremetly hacky MSVS 2010 project up
    on github (in downloads - same as patch file) for those who want to
    build their own.  You will also obviously need to install and build
    the Boost, LLVM and PortAudio libraries yourself.  If someone would
    like to put together a nice cmake project for all of this that would
    be wonderful - until that happens your on your own ;)
    
    Because it's a hastle to build all of this on windows I have also put
    a pre-built extempore binary for windows in github downloads.  this
    is for convenience only.
    digego committed Sep 20, 2011
Commits on Aug 28, 2011
  1. Added global regex replace

    digego committed Aug 28, 2011
Commits on Aug 19, 2011
Commits on Aug 15, 2011
  1. Merge pull request #8 from mellort/master

    Support for vim as an editor
    digego committed Aug 15, 2011
Commits on Aug 7, 2011
  1. fixed typo :)

    tmelz committed Aug 7, 2011