Defold 1.2.148 has been released

Defold 1.2.148

Spine

We have fixed a bug related to bundling Spine scenes with more than 4 bones per vertex, as well as updated the visualisation of Spine models in the editor

Rebundle

In the editor, you can now press CMD+U (CTRL+U) to call Bundle with the last used settings.
This can be a real time saver.

Native Extensions

In anticipation of moving more code out into extensions, we’ve now added our Json parser dmJson into the DefoldSDK.
And you can now also use our synchronization tools dmMutex and dmConditionVariable.

The extender server now picks up the shared/dynamic libraries you have in your extension and links towards them.

And we added a compile flag to HTML5 builds so that they will fail if they get unresolved symbols.

Coming releases

Dropping Bob support on 32-bit Windows

A few weeks back the editor dropped support for the last remaining 32-bit desktop platform (Windows) and now it’s time for our commandline build tool Bob to follow suit. Starting from our next stable release of 1.2.149 we will no longer ship Bob for Windows 32-bit. You will still be able to bundle for 32-bit Windows, but it can’t be used as a development platform.

Engine

  • DEF-3782 - Fixed: Creating too large render target result in lua error instead of an assert.
  • DEF-3797 - Fixed: Improves docs for os.exit - we recommend exit message instead
  • DEF-3805 - Fixed: Linux and OSX builds now will find their linked shared libraries
  • DEF-2063 - Fixed: HTML5 builds doesn’t change window title
  • DEF-3760 - Fixed: Make sure HTML5 builds bail on unresolved symbols
  • DEF-3770 - Fixed: Fixed issue with bundling Spine models with more than 4 bones per vertex.
  • DEF-3790 - Fixed: Fixed DTPlatformVersion for Info.plist on iOS
  • DEF-3801 - Fixed: Added dmJson to DefoldSDK for parsing json files
  • DEF-3784 - Fixed: IAP crash when listing SKUs
  • DEF-3361 - Fixed: Improved profiler ui

Editor

  • DEFEDIT-1560 - Added: Rebundle menu item and shortcut - Bundle again with same options.
  • DEFEDIT-1552 - Added: Added ability to add libraries from markdown files.
  • DEFEDIT-1577 - Added: Middle mouse button box-selection in the code editor
  • DEFEDIT-1530 - Added: Improve tilemap palette navigation
  • DEFEDIT-1556 - Added: Checkbox to Search inside Libraries
  • DEFEDIT-1559 - Added: Handle Enter key in Bundle dialog
  • DEFEDIT-1561 - Added: Delete previous/next word keyboard shortcuts in editor bound to Alt+Backspace/Alt+Delete
  • DEFEDIT-1527 - Added: Open Web Profiler menu option in Debug menu
  • DEFEDIT-1529 - Added: Better build error messages
  • DEFEDIT-1531 - Changed: Update mechanism now asks before downloading update
  • DEFEDIT-231 - Fixed: Changed picking of nodes in scene views so it won’t break on some videocards
  • DEFEDIT-1563 - Fixed: Fixed bad colorization when tinting spine objects in gui scenes
  • DEFEDIT-1526 - Fixed: Fix text tracking not working for real numbers
  • DEFEDIT-1575 - Fixed: Rename texture to texture_sampler in shaders
  • DEFEDIT-1558 - Fixed: Use shift for multi-select instead of control
  • DEFEDIT-1544 - Fixed: Crash on signing iOS app
22 Likes

:heart:

4 Likes

It’s nice to see a bit of attention to the Editor as well! Thanks for this.

Apart from the big features mentioned in the roadmap, any other workflow related thing you plan to address?

1 Like

I am getting Build Errors with 1.2.148

2019-03-05%2019_05_40-Window

Tried deleting .internal, build and %Appdata%/Roaming/Defold
Tried fetching, restarting and reinstalling. Only thing that got rid of it was to rollback to 1.2.147

1 Like

As mentioned in the errors, there are three missing Profiler symbols.
So there’s something wrong with the defoldsdk.

Are you using an app manifest?
Do you have a small repro case?

1 Like

Hi, there has been a slight change regarding the “profilerext” library.

If you remove the profiling (profilerext library) in your appmanifest by adding it to the excludeLibs list you now need to add a corresponding “profilerext_null” to the libs section.

This is a change in the latest release, previously you did not need to add a null-version but it now works much like “sound_null”, “hid_null” and “record_null”.

@britzl has updated the manifestation tool just a minute ago https://britzl.github.io/manifestation/ so it does this properly.

Sorry for missing to point this out properly with the release.

6 Likes

I am not home to verfiy but this 100% sounds like the case. I do think I am stripping it (using appmanifest with Britzl tool).

Edit:
@inactive-vilse @Mathias_Westerdahl I updated the app manifest (excluding everything except input) - I do still get the DefOS and LFS errors. But I get less Unknown sources errors now.

4 Likes

Could you post you appmanifest that you are using so I can have a look tomorrow?

Nothing much here really. Using @britzl generator. Everything excluded except input.

Summary
# App manifest generated Wed Mar 06 2019 18:26:36 GMT+0100 (Central European Standard Time)
# Settings: Physics2D,Physics3D,Record,Profiler,Facebook,Gameroom,Sound
platforms:
    x86_64-osx:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext","sound","tremolo"]
            excludeSymbols: ["ProfilerExt","FacebookExt","DefaultSoundDevice","AudioDecoderWav","AudioDecoderStbVorbis","AudioDecoderTremolo"]
            libs: ["physics_null","record_null","profiler_null","sound_null"]
            linkFlags: []

    x86_64-linux:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext","sound","tremolo"]
            excludeSymbols: ["ProfilerExt","FacebookExt","DefaultSoundDevice","AudioDecoderWav","AudioDecoderStbVorbis","AudioDecoderTremolo"]
            libs: ["physics_null","record_null","profiler_null","sound_null"]
            linkFlags: []

    js-web:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext","sound","tremolo"]
            excludeJsLibs: ["facebook","facebook_iap"]
            excludeSymbols: ["ProfilerExt","FacebookExt","DefaultSoundDevice","AudioDecoderWav","AudioDecoderStbVorbis","AudioDecoderTremolo"]
            libs: ["physics_null","record_null","profiler_null","sound_null"]
            linkFlags: []

    wasm-web:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext","sound","tremolo"]
            excludeJsLibs: ["facebook","facebook_iap"]
            excludeSymbols: ["ProfilerExt","FacebookExt","DefaultSoundDevice","AudioDecoderWav","AudioDecoderStbVorbis","AudioDecoderTremolo"]
            libs: ["physics_null","record_null","profiler_null","sound_null"]
            linkFlags: []

    x86-win32:
        context:
            excludeLibs: ["libphysics","libLinearMath","libBulletDynamics","libBulletCollision","libBox2D","librecord","vpx","libprofilerext","libfacebookext.lib","gameroomext","libsound","libtremolo"]
            excludeSymbols: ["ProfilerExt","FacebookExt","GameroomExt","DefaultSoundDevice","AudioDecoderWav","AudioDecoderStbVorbis","AudioDecoderTremolo"]
            libs: ["libphysics_null.lib","librecord_null.lib","libprofiler_null.lib","libsound_null.lib"]
            linkFlags: []

    x86_64-win32:
        context:
            excludeLibs: ["libphysics","libLinearMath","libBulletDynamics","libBulletCollision","libBox2D","librecord","vpx","libprofilerext","libfacebookext.lib","gameroomext","libsound","libtremolo"]
            excludeSymbols: ["ProfilerExt","FacebookExt","GameroomExt","DefaultSoundDevice","AudioDecoderWav","AudioDecoderStbVorbis","AudioDecoderTremolo"]
            libs: ["libphysics_null.lib","librecord_null.lib","libprofiler_null.lib","libsound_null.lib"]
            linkFlags: []

    armv7-android:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext","sound","tremolo"]
            excludeJars: ["(.*)/facebooksdk.jar","(.*)/facebook_android.jar"]
            excludeSymbols: ["ProfilerExt","FacebookExt","DefaultSoundDevice","AudioDecoderWav","AudioDecoderStbVorbis","AudioDecoderTremolo"]
            libs: ["physics_null","record_null","profiler_null","sound_null"]
            linkFlags: []

    armv7-ios:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext","sound","tremolo"]
            excludeSymbols: ["ProfilerExt","FacebookExt","DefaultSoundDevice","AudioDecoderWav","AudioDecoderStbVorbis","AudioDecoderTremolo"]
            libs: ["physics_null","record_null","profiler_null","sound_null"]
            linkFlags: []

    arm64-ios:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext","sound","tremolo"]
            excludeSymbols: ["ProfilerExt","FacebookExt","DefaultSoundDevice","AudioDecoderWav","AudioDecoderStbVorbis","AudioDecoderTremolo"]
            libs: ["physics_null","record_null","profiler_null","sound_null"]
            linkFlags: []

It should be profilerext_null instead of profiler_null

6 Likes

It should be profilerext_null instead of profiler_null

Solved it

4 Likes

Yes, sorry, @agulev is correct.
(I tricked @britzl into adding this misspelled name :confused: )

2 Likes

one more issue is related manifest file:
if exclude Physics2D, there is error:
ERROR:GAMESYS: Could not retrieve the physics socket '@physics': -6.

1 Like

Updated the tool to use profilerext_null instead.

4 Likes

I applied the generator fix, and that works so I can test the game. When I come to bundle the HTML5 game, though, I get treated to this eye candy:

/fbinstant/src/fbinstant.cpp
	Line 7: 'DLIB_LOG_DOMAIN' macro redefined [-Wmacro-redefined]
#define DLIB_LOG_DOMAIN LIB_NAME
        ^
	Line 7: previous definition is here
#define DLIB_LOG_DOMAIN "FBINSTANT"
        ^

And “Unknown source”:

error: unresolved symbol: dmIAPFBBuy
	error: unresolved symbol: dmIAPFBList
Aborting compilation due to previous errors | undefined
Traceback (most recent call last):
  File "/opt/platformsdk/emsdk_1.38.12/bin/emsdk_portable/emscripten/1.38.12/emcc.py", line 3062, in <module>
    sys.exit(run())
  File "/opt/platformsdk/emsdk_1.38.12/bin/emsdk_portable/emscripten/1.38.12/emcc.py", line 1778, in run
    final = shared.Building.emscripten(final, append_ext=False, extra_args=extra_args)
  File "/opt/platformsdk/emsdk_1.38.12/bin/emsdk_portable/emscripten/1.38.12/tools/shared.py", line 2268, in emscripten
    emscripten._main(cmdline)
  File "/opt/platformsdk/emsdk_1.38.12/bin/emsdk_portable/emscripten/1.38.12/emscripten.py", line 2228, in _main
    return temp_files.run_and_clean(lambda: main(
  File "/opt/platformsdk/emsdk_1.38.12/bin/emsdk_portable/emscripten/1.38.12/tools/tempfiles.py", line 93, in run_and_clean
    return func()
  File "/opt/platformsdk/emsdk_1.38.12/bin/emsdk_portable/emscripten/1.38.12/emscripten.py", line 2233, in <lambda>
    DEBUG=DEBUG,
  File "/opt/platformsdk/emsdk_1.38.12/bin/emsdk_portable/emscripten/1.38.12/emscripten.py", line 2159, in main
    temp_files=temp_files, DEBUG=DEBUG)
  File "/opt/platformsdk/emsdk_1.38.12/bin/emsdk_portable/emscripten/1.38.12/emscripten.py", line 86, in emscript
    glue, forwarded_data = compiler_glue(metadata, libraries, compiler_engine, temp_files, DEBUG)
  File "/opt/platformsdk/emsdk_1.38.12/bin/emsdk_portable/emscripten/1.38.12/emscripten.py", line 218, in compiler_glue
    glue, forwarded_data = compile_settings(compiler_engine, libraries, temp_files)
  File "/opt/platformsdk/emsdk_1.38.12/bin/emsdk_portable/emscripten/1.38.12/emscripten.py", line 530, in compile_settings
    cwd=path_from_root('src'), error_limit=300)
  File "/opt/platformsdk/emsdk_1.38.12/bin/emsdk_portable/emscripten/1.38.12/tools/jsrun.py", line 132, in run_js
    raise Exception('Expected the command ' + str(command) + ' to finish with return code ' + str(assert_returncode) + ', but it returned with code ' + str(proc.returncode) + ' instead! Output: ' + str(ret)[:error_limit])
	Exception: Expected the command ['/opt/platformsdk/emsdk_1.38.12/bin/emsdk_portable/node/8.9.1_64bit/bin/node', '/opt/platformsdk/emsdk_1.38.12/bin/emsdk_portable/emscripten/1.38.12/src/compiler.js', '/tmp/tmpWtrBeY.txt', '/tmp/job5913024471078357886/upload/fbinstant/lib/web/library_fbinstant.js', '/var/extender/sdk/47c9f8e03623ca3ac511b5a55e6cfcc7e51ce340/defoldsdk/lib/js-web/js/library_glfw.js', '/var/extender/sdk/47c9f8e03623ca3ac511b5a55e6cfcc7e51ce340/defoldsdk/lib/js-web/js/library_sys.js', '/var/extender/sdk/47c9f8e03623ca3ac511b5a55e6cfcc7e51ce340/defoldsdk/lib/js-web/js/library_script.js', '/var/extender/sdk/47c9f8e03623ca3ac511b5a55e6cfcc7e51ce340/defoldsdk/lib/js-web/js/library_sound.js', '/opt/platformsdk/emsdk_1.38.12/bin/emsdk_portable/emscripten/1.38.12/src/library_pthread_stub.js'] to finish with return code 0, but it returned with code 1 instead! Output: // The Module object: Our interface to the outside world. We import
// and export values on it. There are various ways Module can be used:
// 1. Not defined. We create it here
// 2. A function parameter, function(Module) { ..generated code.. }
// 3. pre-run appended it, var Module = {}; ..generated 

Any idea why?!

Could you share your app manifest? :slight_smile:

Certainly! :smiley:

# App manifest generated Thu Mar 07 2019 16:19:15 GMT+0000 (Greenwich Mean Time)
# Settings: Physics2D,Physics3D,Record,Profiler,Facebook,Gameroom
platforms:
    x86_64-osx:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext"]
            excludeSymbols: ["ProfilerExt","FacebookExt"]
            libs: ["physics_null","record_null","profilerext_null"]
            linkFlags: []

    x86_64-linux:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext"]
            excludeSymbols: ["ProfilerExt","FacebookExt"]
            libs: ["physics_null","record_null","profilerext_null"]
            linkFlags: []

    js-web:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext"]
            excludeJsLibs: ["facebook","facebook_iap"]
            excludeSymbols: ["ProfilerExt","FacebookExt"]
            libs: ["physics_null","record_null","profilerext_null"]
            linkFlags: []

    wasm-web:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext"]
            excludeJsLibs: ["facebook","facebook_iap"]
            excludeSymbols: ["ProfilerExt","FacebookExt"]
            libs: ["physics_null","record_null","profilerext_null"]
            linkFlags: []

    x86-win32:
        context:
            excludeLibs: ["libphysics","libLinearMath","libBulletDynamics","libBulletCollision","libBox2D","librecord","vpx","libprofilerext","libfacebookext.lib","gameroomext"]
            excludeSymbols: ["ProfilerExt","FacebookExt","GameroomExt"]
            libs: ["libphysics_null.lib","librecord_null.lib","libprofilerext_null.lib"]
            linkFlags: []

    x86_64-win32:
        context:
            excludeLibs: ["libphysics","libLinearMath","libBulletDynamics","libBulletCollision","libBox2D","librecord","vpx","libprofilerext","libfacebookext.lib","gameroomext"]
            excludeSymbols: ["ProfilerExt","FacebookExt","GameroomExt"]
            libs: ["libphysics_null.lib","librecord_null.lib","libprofilerext_null.lib"]
            linkFlags: []

    armv7-android:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext"]
            excludeJars: ["(.*)/facebooksdk.jar","(.*)/facebook_android.jar"]
            excludeSymbols: ["ProfilerExt","FacebookExt"]
            libs: ["physics_null","record_null","profilerext_null"]
            linkFlags: []

    armv7-ios:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext"]
            excludeSymbols: ["ProfilerExt","FacebookExt"]
            libs: ["physics_null","record_null","profilerext_null"]
            linkFlags: []

    arm64-ios:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext"]
            excludeSymbols: ["ProfilerExt","FacebookExt"]
            libs: ["physics_null","record_null","profilerext_null"]
            linkFlags: []

I see, hm, let’s ping @jhonny.goransson to help us take a look at this tomorrow maybe.

But just to try something, could you remove anything facebook related under the js-web and wasm-web platforms in you manifest?

(Not a solution, but just to narrow down the issue!)

Sure, will try in the morning.

2 Likes

Removing all Facebook references works, it now compiles and I can push a build. Filesize has gone up, I suppose that’s expected.

New manifest:

   # App manifest generated Thu Mar 07 2019 16:19:15 GMT+0000 (Greenwich Mean Time)
# Settings: Physics2D,Physics3D,Record,Profiler,Facebook,Gameroom
platforms:
    x86_64-osx:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext"]
            excludeSymbols: ["ProfilerExt","FacebookExt"]
            libs: ["physics_null","record_null","profilerext_null"]
            linkFlags: []

    x86_64-linux:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext"]
            excludeSymbols: ["ProfilerExt","FacebookExt"]
            libs: ["physics_null","record_null","profilerext_null"]
            linkFlags: []

    js-web:
        context:
            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext"]
            excludeJsLibs: []
            excludeSymbols: ["ProfilerExt"]
            libs: ["physics_null","record_null","profilerext_null"]
            linkFlags: []

wasm-web:
    context:
        excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext"]
        excludeJsLibs: []
        excludeSymbols: ["ProfilerExt"]
        libs: ["physics_null","record_null","profilerext_null"]
        linkFlags: []

x86-win32:
    context:
        excludeLibs: ["libphysics","libLinearMath","libBulletDynamics","libBulletCollision","libBox2D","librecord","vpx","libprofilerext","libfacebookext.lib","gameroomext"]
        excludeSymbols: ["ProfilerExt","FacebookExt","GameroomExt"]
        libs: ["libphysics_null.lib","librecord_null.lib","libprofilerext_null.lib"]
        linkFlags: []

x86_64-win32:
    context:
        excludeLibs: ["libphysics","libLinearMath","libBulletDynamics","libBulletCollision","libBox2D","librecord","vpx","libprofilerext","libfacebookext.lib","gameroomext"]
        excludeSymbols: ["ProfilerExt","FacebookExt","GameroomExt"]
        libs: ["libphysics_null.lib","librecord_null.lib","libprofilerext_null.lib"]
        linkFlags: []

armv7-android:
    context:
        excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext"]
        excludeJars: ["(.*)/facebooksdk.jar","(.*)/facebook_android.jar"]
        excludeSymbols: ["ProfilerExt","FacebookExt"]
        libs: ["physics_null","record_null","profilerext_null"]
        linkFlags: []

armv7-ios:
    context:
        excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext"]
        excludeSymbols: ["ProfilerExt","FacebookExt"]
        libs: ["physics_null","record_null","profilerext_null"]
        linkFlags: []

arm64-ios:
    context:
        excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision","Box2D","record","vpx","profilerext","facebookext"]
        excludeSymbols: ["ProfilerExt","FacebookExt"]
        libs: ["physics_null","record_null","profilerext_null"]
        linkFlags: []
1 Like