nimterop / wrappers Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
soloud wrapper relies on cpp files, and it works when running from inside wrappers repo because of config.nims hack which redefines the linker; however it'll fail if main profile file is outside this repo since that config file won't be applied anymore and you'll get:
Undefined symbols for architecture x86_64:
"std::terminate()", referenced from:
___clang_call_terminate in soloud.cpp.o
___clang_call_terminate in soloud_bus.cpp.o
...
nim cpp
soloud
into a shared library (or static lib, or both)won't it install HEAD version instead of PR version?
it's used in nimterop repo and (commented out) in wrappers repo
Why not soloud.nim? Every directory will have wrapper.nim this way.
import soloud
soloud.nim
./soloud/
https://github.com/dlang/phobos/blob/master/std/range/package.d
package.d
, eg:foo.d
gets later migrated to foo/package.d
A package module can be used to publicly import other modules, while enabling a simpler import syntax. It enables converting a module into a package of modules, without breaking existing code which uses that module
when upgrading from a single file foo.d
to a directory foo/
, we can do this:
# in foo.nim:
# wrapper code goes here
# in foo.nim:
# only 2 lines, eg:
import foo/wrapper
export wrapper
# in foo/wrapper.nim
# wrapper code goes here
# in foo/demo.nim
# demo code goes here
# etc: additional files specific to formula can be added
https://ci.appveyor.com/project/genotrance/wrappers/builds/22042563/job/7ki4r4i0xt0a5ali/messages
Build execution time has reached the maximum allowed time for your plan (60 minutes).
how's that even possible?
maybe it's a 1-off thing, let's see
Build started
git clone -q https://github.com/nimterop/wrappers.git /home/appveyor/projects/wrappers
git fetch -q origin +refs/pull/14/merge:
git checkout -qf FETCH_HEAD
Restoring build cache
Cache '/home/appveyor/binaries' - Restored
Running "install" scripts
set -e
set -u
if [ ! -e /home/appveyor/binaries ]; then echo $NIM_VERSION && mkdir /home/appveyor/binaries && cd /home/appveyor/binaries && curl -s -o nim-$NIM_VERSION.tar.xz https://nim-lang.org/download/nim-$NIM_VERSION.tar.xz && tar xJf nim-$NIM_VERSION.tar.xz && cd nim-$NIM_VERSION && sh build.sh && bin/nim c -d:release koch && ./koch boot -d:release && ./koch nimble -d:release; fi
export PATH=/home/appveyor/binaries/nim-$NIM_VERSION/bin:~/.nimble/bin:$PATH
cd $APPVEYOR_BUILD_FOLDER
Running "build_script" scripts
nimble install -y
Verifying dependencies for [email protected]
Prompt: No local packages.json found, download it from internet? -> [forced yes]
Downloading Official package list
Success Package list downloaded.
Installing cligen@>= 0.9.17
Downloading https://github.com/c-blake/cligen.git using git
Verifying dependencies for [email protected]
Installing [email protected]
Success: cligen installed successfully.
Installing nimterop@>= 0.1.0
Downloading https://github.com/genotrance/nimterop using git
Verifying dependencies for [email protected]
Installing regex@>= 0.10.0
it makes CI slower to rebuild nim devel from scratch each time, for 0 benefit
curl https://nim-lang.org/choosenim/init.sh -sSf > init.sh
takes 341.51s (5mn40s)# replace `nsaar5foexk9adan` below:
[![Build status](https://ci.appveyor.com/api/projects/status/nsaar5foexk9adan/branch/master?svg=true)](https://ci.appveyor.com/project/nimterop/wrappers/branch/master)
toast
(from nimterop) as well, see nimterop/nimterop#33 (comment) (was causing a name clash in ~/.nimble/bin/toast
)wrappers
to something with nim
in it as it'll end up in ~/.nimble/bin/toast
which may be in user's PATHTODO: fill in relevant details from nimterop/nimterop#81
replace all imports by relative imports to avoid conflicts, eg in case multiple versions of wrappers
are installed
robust but annoying as you need to compute relative paths for each import
import wrapperspkg/foo
=>
import "../../" / wrapperspkg/foo
implement support in Nim for:
import wrapperspkg/foo
=>
import root/wrapperspkg/foo # root of nimble pkg containing this file
which extends the existing special syntax import pkg/foo/bar
alternative names:
tpkg
(ie: this pkg)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.