Hi folks
Those of you who have been github-stalking Andy and I recently will know
that we've been preparing a new 0.7 release. Here's a brief overview of
the changes:
- everything.
That's a *small* exaggeration, but it's true that there have been heaps
of changes in the ~600 commits since 0.6.0.
From a user's perspective, one of the biggest changes is that we've got
binary releases for all platforms available on GH:
https://github.com/digego/extempore/releases/tag/0.7.0
Binary releases are something that we've been asked about for a while
now, and will hopefully make it even easier to get up and running even
than things like homebrew.
If that's not your cup of tea, then the cmake-powered build-from-source
process is easier than it's ever been, check out
http://digego.github.io/extempore/install.html for details.
We've done our best to make sure the binaries will work everywhere, but
if you have issues then let us know. We'll be revealing more about the
changes to the language etc. in future mailing list posts, but as usual
if you get stuck then fire an email to the mailing list and we'll do our
best to help out.
Finally, there's a new documentation website up online at
http://digego.github.io/extempore/
It's automatically generated from the files in the extempore `docs/`
subfolder, which means that if you find something that's wrong or have
an idea to improve the docs, you can just edit those files and let us
know through a GitHub pull request. You don't need to be a command-line
ninja to do that - the GitHub web interface lets you edit the files
in your web browser:
https://github.com/digego/extempore/tree/master/docs
Love youse all,
Ben
(bind-func dsp (lambda (in:SAMPLE time:i64 chan:i64 data:SAMPLE*) (* 0.1 (convert (random) SAMPLE))))
results in
Could not resolve types!::dsp
ambiguous: random##9
(0) [double]*
(1) [float]*
------------------------
Thanks Ben,
Here is the complete build-process (I also attached the CMakeOutput.log and CMakeCache.txt inside portmidi, if those are of any help….) :
SJK@SUK-JUNs-MBP$ ~: git clone https://github.com/digego/extempore --branch 0.7.0 && mkdir extempore/cmake-build && cd extempore/cmake-build && cmake .. && make install
Cloning into 'extempore'...
remote: Counting objects: 24659, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 24659 (delta 2), reused 1 (delta 1), pack-reused 24654
Receiving objects: 100% (24659/24659), 23.43 MiB | 1.91 MiB/s, done.
Resolving deltas: 100% (16666/16666), done.
Note: checking out '2a6633e70389add04fbae54262c521addfa8d3b1'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
-- The C compiler identification is AppleClang 8.0.0.8000038
-- The CXX compiler identification is AppleClang 8.0.0.8000038
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building 'Release' configuration
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/SJK/extempore/cmake-build
Scanning dependencies of target portmidi
[ 1%] Creating directories for 'portmidi'
[ 2%] Performing download step (download, verify and extract) for 'portmidi'
-- downloading...
src='https://github.com/extemporelang/portmidi/archive/217.zip'
dst='/Users/SJK/extempore/cmake-build/portmidi/src/217.zip'
timeout='none'
-- Downloading... done
-- extracting...
src='/Users/SJK/extempore/cmake-build/portmidi/src/217.zip'
dst='/Users/SJK/extempore/cmake-build/portmidi/src/portmidi'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 3%] No patch step for 'portmidi'
[ 4%] No update step for 'portmidi'
[ 5%] Performing configure step for 'portmidi'
--
You received this message because you are subscribed to a topic in the Google Groups "Extempore" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/extemporelang/Y-T6BfTNjZ8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to extemporelan...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Hi Ben,
Thanks—I did some more jugging and was able to get the compiling going (I had to reinstall Xcode Command Line Tools and reset the directory path), but the compiling produced another error, which may or may not be related to Sierra:
Evaluating expression: (impc:aot:compile-xtm-file "libs/external/nanovg.xtm" #t #t)
Started compiling: "libs/external/nanovg.xtm"
Loading xtmbase library... done in 0.000000 seconds
sys:load notification base already loaded
Loading xtmglcore-directbind library... done in 0.000000 seconds
sys:load notification gl already loaded
Lib Load: libnanovg dynamic library loaded from /Users/SJK/extempore/libs/platform-shlibs/libnanovg.dylib
SetAlias: NVGcontext >>> i8
DataType: NVGcolor >>> <float,float,float,float>
Compiled: print >>> [void,NVGcolor*]*
Compiled: NVGcolor_hex >>> [NVGcolor*,i64]*
DataType: NVGpaint >>> <|6,float|,|2,float|,float,float,NVGcolor,NVGcolor,i32>
Compiled: print >>> [void,NVGpaint*]*
SetAlias: NVGwinding >>> i32
SetValue: NVG_CCW >>> i32
SetValue: NVG_CW >>> i32
SetAlias: NVGsolidity >>> i32
SetValue: NVG_SOLID >>> i32
SetValue: NVG_HOLE >>> i32
SetAlias: NVGlineCap >>> i32
SetValue: NVG_BUTT >>> i32
SetValue: NVG_ROUND >>> i32
SetValue: NVG_SQUARE >>> i32
SetValue: NVG_BEVEL >>> i32
SetValue: NVG_MITER >>> i32
SetAlias: NVGalign >>> i32
SetValue: NVG_ALIGN_LEFT >>> i32
SetValue: NVG_ALIGN_CENTER >>> i32
SetValue: NVG_ALIGN_RIGHT >>> i32
SetValue: NVG_ALIGN_TOP >>> i32
SetValue: NVG_ALIGN_MIDDLE >>> i32
SetValue: NVG_ALIGN_BOTTOM >>> i32
SetValue: NVG_ALIGN_BASELINE >>> i32
DataType: NVGglyphPosition >>> <i8*,float,float,float>
DataType: NVGtextRow >>> <i8*,i8*,i8*,float,float,float>
SetAlias: NVGimageFlags >>> i32
SetValue: NVG_IMAGE_GENERATE_MIPMAPS >>> i32
SetValue: NVG_IMAGE_REPEATX >>> i32
SetValue: NVG_IMAGE_REPEATY >>> i32
SetValue: NVG_IMAGE_FLIPY >>> i32
SetValue: NVG_IMAGE_PREMULTIPLIED >>> i32
LibBound: nvgBeginFrame >>> [void,NVGcontext*,i32,i32,float]* bound from libnanovg
LibBound: nvgCancelFrame >>> [void,NVGcontext*]* bound from libnanovg
LibBound: nvgEndFrame >>> [void,NVGcontext*]* bound from libnanovg
LibBound: nvgRGB >>> [NVGcolor,i8,i8,i8]* bound from libnanovg
LibBound: nvgRGBf >>> [NVGcolor,float,float,float]* bound from libnanovg
LibBound: nvgRGBA >>> [NVGcolor,i8,i8,i8,i8]* bound from libnanovg
LibBound: nvgRGBAf >>> [NVGcolor,float,float,float,float]* bound from libnanovg
LibBound: nvgLerpRGBA >>> [NVGcolor,NVGcolor,NVGcolor,float]* bound from libnanovg
LibBound: nvgTransRGBA >>> [NVGcolor,NVGcolor,i8]* bound from libnanovg
LibBound: nvgTransRGBAf >>> [NVGcolor,NVGcolor,float]* bound from libnanovg
LibBound: nvgHSL >>> [NVGcolor,float,float,float]* bound from libnanovg
LibBound: nvgHSLA >>> [NVGcolor,float,float,float,i8]* bound from libnanovg
LibBound: nvgSave >>> [void,NVGcontext*]* bound from libnanovg
LibBound: nvgRestore >>> [void,NVGcontext*]* bound from libnanovg
LibBound: nvgReset >>> [void,NVGcontext*]* bound from libnanovg
LibBound: nvgStrokeColor >>> [void,NVGcontext*,NVGcolor]* bound from libnanovg
LibBound: nvgStrokePaint >>> [void,NVGcontext*,NVGpaint]* bound from libnanovg
LibBound: nvgFillColor >>> [void,NVGcontext*,NVGcolor]* bound from libnanovg
LibBound: nvgFillPaint >>> [void,NVGcontext*,NVGpaint]* bound from libnanovg
LibBound: nvgMiterLimit >>> [void,NVGcontext*,float]* bound from libnanovg
LibBound: nvgStrokeWidth >>> [void,NVGcontext*,float]* bound from libnanovg
LibBound: nvgLineCap >>> [void,NVGcontext*,i32]* bound from libnanovg
LibBound: nvgLineJoin >>> [void,NVGcontext*,i32]* bound from libnanovg
LibBound: nvgGlobalAlpha >>> [void,NVGcontext*,float]* bound from libnanovg
LibBound: nvgResetTransform >>> [void,NVGcontext*]* bound from libnanovg
LibBound: nvgTransform >>> [void,NVGcontext*,float,float,float,float,float,float]* bound from libnanovg
LibBound: nvgTranslate >>> [void,NVGcontext*,float,float]* bound from libnanovg
LibBound: nvgRotate >>> [void,NVGcontext*,float]* bound from libnanovg
LibBound: nvgSkewX >>> [void,NVGcontext*,float]* bound from libnanovg
LibBound: nvgSkewY >>> [void,NVGcontext*,float]* bound from libnanovg
LibBound: nvgScale >>> [void,NVGcontext*,float,float]* bound from libnanovg
LibBound: nvgCurrentTransform >>> [void,NVGcontext*,float*]* bound from libnanovg
LibBound: nvgTransformIdentity >>> [void,float*]* bound from libnanovg
LibBound: nvgTransformTranslate >>> [void,float*,float,float]* bound from libnanovg
LibBound: nvgTransformScale >>> [void,float*,float,float]* bound from libnanovg
LibBound: nvgTransformRotate >>> [void,float*,float]* bound from libnanovg
LibBound: nvgTransformSkewX >>> [void,float*,float]* bound from libnanovg
LibBound: nvgTransformSkewY >>> [void,float*,float]* bound from libnanovg
LibBound: nvgTransformMultiply >>> [void,float*,float*]* bound from libnanovg
LibBound: nvgTransformPremultiply >>> [void,float*,float*]* bound from libnanovg
LibBound: nvgTransformInverse >>> [i32,float*,float*]* bound from libnanovg
LibBound: nvgTransformPoint >>> [void,float*,float*,float*,float,float]* bound from libnanovg
LibBound: nvgDegToRad >>> [float,float]* bound from libnanovg
LibBound: nvgRadToDeg >>> [float,float]* bound from libnanovg
LibBound: nvgCreateImage >>> [i32,NVGcontext*,i8*,i32]* bound from libnanovg
LibBound: nvgCreateImageMem >>> [i32,NVGcontext*,i32,i8*,i32]* bound from libnanovg
LibBound: nvgCreateImageRGBA >>> [i32,NVGcontext*,i32,i32,i32,i8*]* bound from libnanovg
LibBound: nvgUpdateImage >>> [void,NVGcontext*,i32,i8*]* bound from libnanovg
LibBound: nvgImageSize >>> [void,NVGcontext*,i32,i32*,i32*]* bound from libnanovg
LibBound: nvgDeleteImage >>> [void,NVGcontext*,i32]* bound from libnanovg
LibBound: nvgLinearGradient >>> [NVGpaint,NVGcontext*,float,float,float,float,NVGcolor,NVGcolor]* bound from libnanovg
LibBound: nvgBoxGradient >>> [NVGpaint,NVGcontext*,float,float,float,float,float,float,NVGcolor,NVGcolor]* bound from libnanovg
LibBound: nvgRadialGradient >>> [NVGpaint,NVGcontext*,float,float,float,float,NVGcolor,NVGcolor]* bound from libnanovg
LibBound: nvgImagePattern >>> [NVGpaint,NVGcontext*,float,float,float,float,float,i32,float]* bound from libnanovg
LibBound: nvgScissor >>> [void,NVGcontext*,float,float,float,float]* bound from libnanovg
LibBound: nvgIntersectScissor >>> [void,NVGcontext*,float,float,float,float]* bound from libnanovg
LibBound: nvgResetScissor >>> [void,NVGcontext*]* bound from libnanovg
LibBound: nvgBeginPath >>> [void,NVGcontext*]* bound from libnanovg
LibBound: nvgMoveTo >>> [void,NVGcontext*,float,float]* bound from libnanovg
LibBound: nvgLineTo >>> [void,NVGcontext*,float,float]* bound from libnanovg
LibBound: nvgBezierTo >>> [void,NVGcontext*,float,float,float,float,float,float]* bound from libnanovg
LibBound: nvgQuadTo >>> [void,NVGcontext*,float,float,float,float]* bound from libnanovg
LibBound: nvgArcTo >>> [void,NVGcontext*,float,float,float,float,float]* bound from libnanovg
LibBound: nvgClosePath >>> [void,NVGcontext*]* bound from libnanovg
LibBound: nvgPathWinding >>> [void,NVGcontext*,i32]* bound from libnanovg
LibBound: nvgArc >>> [void,NVGcontext*,float,float,float,float,float,i32]* bound from libnanovg
LibBound: nvgRect >>> [void,NVGcontext*,float,float,float,float]* bound from libnanovg
LibBound: nvgRoundedRect >>> [void,NVGcontext*,float,float,float,float,float]* bound from libnanovg
LibBound: nvgEllipse >>> [void,NVGcontext*,float,float,float,float]* bound from libnanovg
LibBound: nvgCircle >>> [void,NVGcontext*,float,float,float]* bound from libnanovg
LibBound: nvgFill >>> [void,NVGcontext*]* bound from libnanovg
LibBound: nvgStroke >>> [void,NVGcontext*]* bound from libnanovg
LibBound: nvgCreateFont >>> [i32,NVGcontext*,i8*,i8*]* bound from libnanovg
LibBound: nvgCreateFontMem >>> [i32,NVGcontext*,i8*,i8*,i32,i32]* bound from libnanovg
LibBound: nvgFindFont >>> [i32,NVGcontext*,i8*]* bound from libnanovg
LibBound: nvgFontSize >>> [void,NVGcontext*,float]* bound from libnanovg
LibBound: nvgFontBlur >>> [void,NVGcontext*,float]* bound from libnanovg
LibBound: nvgTextLetterSpacing >>> [void,NVGcontext*,float]* bound from libnanovg
LibBound: nvgTextLineHeight >>> [void,NVGcontext*,float]* bound from libnanovg
LibBound: nvgTextAlign >>> [void,NVGcontext*,i32]* bound from libnanovg
LibBound: nvgFontFaceId >>> [void,NVGcontext*,i32]* bound from libnanovg
LibBound: nvgFontFace >>> [void,NVGcontext*,i8*]* bound from libnanovg
LibBound: nvgText >>> [float,NVGcontext*,float,float,i8*,i8*]* bound from libnanovg
LibBound: nvgTextBox >>> [void,NVGcontext*,float,float,float,i8*,i8*]* bound from libnanovg
LibBound: nvgTextBounds >>> [float,NVGcontext*,float,float,i8*,i8*,float*]* bound from libnanovg
LibBound: nvgTextBoxBounds >>> [void,NVGcontext*,float,float,float,i8*,i8*,float*]* bound from libnanovg
LibBound: nvgTextGlyphPositions >>> [i32,NVGcontext*,float,float,i8*,i8*,NVGglyphPosition*,i32]* bound from libnanovg
LibBound: nvgTextMetrics >>> [void,NVGcontext*,float*,float*,float*]* bound from libnanovg
LibBound: nvgTextBreakLines >>> [i32,NVGcontext*,i8*,i8*,float,NVGtextRow*,i32]* bound from libnanovg
SetAlias: NVGtexture >>> i32
SetValue: NVG_TEXTURE_ALPHA >>> i32
SetValue: NVG_TEXTURE_RGBA >>> i32
DataType: NVGscissor >>> <float,float>
DataType: NVGvertex >>> <float,float,float,float>
DataType: NVGpath >>> <i32,i32,i8,i32,NVGvertex*,i32,NVGvertex*,i32,i32,i32>
DataType: NVGparams >>> <i8*,i32,i32,i32,i32,i32,i32,[void,i8*,i32,i32]*,[void,i8*]*,[void,i8*]*,[void,i8*,NVGpaint*,NVGscissor*,float,float*,NVGpath*,i32]*,[void,i8*,NVGpaint*,NVGscissor*,float,float*,NVGpath*,i32]*,[void,i8*,NVGpaint*,NVGscissor*,NVGvertex*,i32]*,[void,i8*]>
LibBound: nvgCreateInternal >>> [NVGcontext*,NVGparams*]* bound from libnanovg
LibBound: nvgDeleteInternal >>> [void,NVGcontext*]* bound from libnanovg
LibBound: nvgInternalParams >>> [NVGparams*,NVGcontext*]* bound from libnanovg
LibBound: nvgDebugDumpPathCache >>> [void,NVGcontext*]* bound from libnanovg
SetAlias: NVGcreateFlags >>> i32
SetValue: NVG_ANTIALIAS >>> i32
SetValue: NVG_STENCIL_STROKES >>> i32
SetValue: NVG_DEBUG >>> i32
LibBound: nvgCreateGL3 >>> [NVGcontext*,i32]* bound from libnanovg
LibBound: nvgDeleteGL3 >>> [void,NVGcontext*]* bound from libnanovg
Compiler Error could not bind _nvgLinearGradient
make[2]: *** [CMakeFiles/aot_nanovg] Error 2
make[1]: *** [CMakeFiles/aot_nanovg.dir/all] Error 2
make: *** [all] Error 2
Any thought on that?
Jun
Hi Ben,
Yes, building from the HEAD works. Thanks!
Jun