nim-lang / csources_v1 Goto Github PK
View Code? Open in Web Editor NEWCSources compiled from Nim version 1. Supports more CPU/OS combinations than the older csources repository.
License: MIT License
CSources compiled from Nim version 1. Supports more CPU/OS combinations than the older csources repository.
License: MIT License
With the resulting error code
OS: macosx
CPU: arm
clang -o ../bin/nim -ldl -lm
Undefined symbols for architecture arm64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Build fails on Mac M1 with message
"building for macOS-arm64 but attempting to link with file built for unknown-x86_64"
% clang --version
Apple clang version 13.0.0 (clang-1300.0.29.30)
Target: arm64-apple-darwin20.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
Also note that the error message is hidden during nim build in the nimbus-build system, if not using make V=1
.
clang is compiling binaries to x86_64. Running the same command from command-line compiles to arm64.
To debug what happens I've added -v
to CFLAGS, and the compilation magically changes to arm64. Really strange -v being verbose output. I suspect an underlying clang bug.
Anyway the workaround is below. Note that make clean
is required.
diff --git a/makefile b/makefile
index 503c030..9326ac3 100644
--- a/makefile
+++ b/makefile
@@ -3,7 +3,7 @@
# To regenerate run ``niminst csource`` or ``koch csource``
CC ?= gcc
-CFLAGS += -Ic_code -w -O3 -fno-strict-aliasing
+CFLAGS += -Ic_code -w -O3 -fno-strict-aliasing -v
LDFLAGS +=
binDir = bin
In the old csources repo there were several "releases" that could be easily downloaded without needing to clone the whole repo like so:
https://github.com/nim-lang/csources/archive/v0.20.0/csources-0.20.0.tar.gz
Could you perhaps make a release here too please?
But only if you think it's a good idea, and if it doesn't create any difficulty with your GitHub account limitations. Say if you were building version X of Nim then it might be useful to be able to build that in future with the same version Y of csources_v1, but perhaps you intend that you should always use the latest version of csources_v1 with older releases of Nim, however I expect that might stop working at some point so it might be better to have some actual releases for reliable consistent builds, although you could still go back through the commit history and checkout an older version like that.
(Edit: this is in relation to looking at the possibility of updating the currently outdated Nim PKGBUILD in Arch which uses a checksummed download for security, so the built in download in the Nim build script may be less desirable.)
(Further edit:
https://wiki.archlinux.org/title/Arch_package_guidelines#Package_sources
According to that a pgp signed tag or release would be even better, and this is probably one of the things keeping Nim stuck at 1.4, it wouldn't be a problem to edit the Nim build in the PKGBUILD to not do it's own unverified csources d/l)
When trying to bootstrap with csource I get this error:
koch boot -d:release --cc:vcc --skipUserCfg --skipParentCfg
iteration: 1
bin\nim.exe c --skipUserCfg --skipParentCfg -d:nimKochBootstrap --nimcache:nimcache/r_windows_amd64 -d:release --cc:vcc --skipUserCfg --skipParentCfg --noNimblePath --compileOnly compiler\nim.nim
Hint: used config file 'E:\Nim\config\nim.cfg' [Conf]
Hint: used config file 'E:\Nim\compiler\nim.cfg' [Conf]
Hint: used config file 'E:\Nim\config\config.nims' [Conf]
E:\Nim\lib\system.nim(27, 48) Warning: unknown magic 'ZeroDefault' might crash the compiler [UnknownMagic]
Hint: system [Processing]
E:\Nim\lib\system.nim(27, 48) Warning: unknown magic 'ZeroDefault' might crash the compiler [UnknownMagic]
Hint: exceptions [Processing]
Hint: since [Processing]
Hint: ctypes [Processing]
Hint: sysatomics [Processing]
Hint: ansi_c [Processing]
Hint: memory [Processing]
Hint: iterators [Processing]
Hint: assertions [Processing]
Hint: miscdollars [Processing]
Hint: digitsutils [Processing]
Hint: coro_detection [Processing]
Hint: dollars [Processing]
Hint: stacktraces [Processing]
Hint: formatfloat [Processing]
Hint: dragonbox [Processing]
Hint: schubfach [Processing]
Hint: countbits_impl [Processing]
Hint: bitops_utils [Processing]
Hint: syslocks [Processing]
E:\Nim\lib\system.nim(2239, 68) Warning: unknown magic 'Finished' might crash the compiler [UnknownMagic]
Hint: nim [Processing]
Hint: os [Processing]
Hint: ospaths2 [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: math [Processing]
Hint: bitops [Processing]
Hint: macros [Processing]
Hint: fenv [Processing]
Hint: algorithm [Processing]
Hint: enumutils [Processing]
Hint: typetraits [Processing]
Hint: unicode [Processing]
Hint: strbasics [Processing]
Hint: strimpl [Processing]
Hint: pathnorm [Processing]
Hint: osseps [Processing]
Hint: ntpath [Processing]
Hint: oserrors [Processing]
Hint: winlean [Processing]
Hint: dynlib [Processing]
Hint: syncio [Processing]
Hint: widestrs [Processing]
Hint: exitprocs [Processing]
Hint: locks [Processing]
Hint: oscommon [Processing]
Hint: times [Processing]
Hint: options [Processing]
Hint: time_t [Processing]
Hint: osfiles [Processing]
Hint: ossymlinks [Processing]
Hint: osdirs [Processing]
Hint: osappdirs [Processing]
Hint: envvars [Processing]
Hint: win_setenv [Processing]
Hint: parseopt [Processing]
Hint: commands [Processing]
Hint: setutils [Processing]
Hint: sequtils [Processing]
Hint: strtabs [Processing]
Hint: hashes [Processing]
Hint: msgs [Processing]
Hint: tables [Processing]
Hint: outparams [Processing]
Hint: terminal [Processing]
Hint: strformat [Processing]
Hint: colors [Processing]
Hint: options [Processing]
Hint: sets [Processing]
Hint: lineinfos [Processing]
Hint: ropes [Processing]
Hint: pathutils [Processing]
Hint: platform [Processing]
Hint: prefixmatches [Processing]
Hint: nimpaths [Processing]
Hint: globs [Processing]
Hint: objectdollar [Processing]
Hint: nversion [Processing]
Hint: condsyms [Processing]
Hint: extccomp [Processing]
Hint: modulepaths [Processing]
Hint: ast [Processing]
Hint: idents [Processing]
Hint: wordrecg [Processing]
Hint: int128 [Processing]
Hint: renderer [Processing]
Hint: lexer [Processing]
Hint: nimlexbase [Processing]
Hint: llstream [Processing]
Hint: osproc [Processing]
Hint: streams [Processing]
Hint: cpuinfo [Processing]
Hint: win_getsysteminfo [Processing]
Hint: streamwrapper [Processing]
Hint: deques [Processing]
Hint: sha1 [Processing]
Hint: endians [Processing]
Hint: json [Processing]
Hint: lexbase [Processing]
Hint: parsejson [Processing]
Hint: decode_helpers [Processing]
Hint: jsonutils [Processing]
Hint: sugar [Processing]
Hint: underscored_calls [Processing]
Hint: nimblecmd [Processing]
Hint: main [Processing]
Hint: with [Processing]
Hint: syntaxes [Processing]
Hint: parser [Processing]
Hint: filters [Processing]
Hint: filter_tmpl [Processing]
Hint: sem [Processing]
Hint: astalgo [Processing]
Hint: intsets [Processing]
Hint: packedsets [Processing]
Hint: rodutils [Processing]
Hint: trees [Processing]
Hint: types [Processing]
Hint: modulegraphs [Processing]
Hint: md5_old [Processing]
Hint: btrees [Processing]
Hint: packages [Processing]
Hint: packed_ast [Processing]
Hint: bitabs [Processing]
Hint: rodfiles [Processing]
Hint: ic [Processing]
Hint: astmsgs [Processing]
Hint: magicsys [Processing]
Hint: nimsets [Processing]
Hint: bitsets [Processing]
Hint: semfold [Processing]
Hint: importer [Processing]
Hint: lookups [Processing]
Hint: semdata [Processing]
Hint: vmdef [Processing]
Hint: prettybase [Processing]
Hint: linter [Processing]
Hint: editdistance [Processing]
Hint: heapqueue [Processing]
Hint: sigmatch [Processing]
Hint: semtypinst [Processing]
Hint: concepts [Processing]
Hint: parampatterns [Processing]
Hint: lowerings [Processing]
Hint: procfind [Processing]
Hint: pragmas [Processing]
Hint: passes [Processing]
Hint: reorder [Processing]
Hint: transf [Processing]
Hint: cgmeth [Processing]
Hint: sempass2 [Processing]
Hint: guards [Processing]
Hint: saturate [Processing]
Hint: varpartitions [Processing]
Hint: typeallowed [Processing]
Hint: isolation_check [Processing]
Hint: nilcheck [Processing]
Hint: treetab [Processing]
Hint: errorhandling [Processing]
Hint: liftdestructors [Processing]
Hint: sighashes [Processing]
Hint: ccgutils [Processing]
Hint: cgendata [Processing]
Hint: ndi [Processing]
Hint: liftlocals [Processing]
Hint: closureiters [Processing]
Hint: lambdalifting [Processing]
Hint: vm [Processing]
Hint: vmgen [Processing]
Hint: vmdeps [Processing]
Hint: gorgeimpl [Processing]
Hint: macrocacheimpl [Processing]
Hint: vmprofiler [Processing]
Hint: evaltempl [Processing]
Hint: vmconv [Processing]
Hint: vmmarshal [Processing]
Hint: aliases [Processing]
Hint: patterns [Processing]
Hint: semmacrosanity [Processing]
Hint: active [Processing]
Hint: pluginsupport [Processing]
Hint: locals [Processing]
Hint: itersgen [Processing]
Hint: enumtostr [Processing]
Hint: spawn [Processing]
Hint: cgen [Processing]
Hint: injectdestructors [Processing]
Hint: optimizer [Processing]
Hint: aliasanalysis [Processing]
Hint: dfa [Processing]
Hint: asciitables [Processing]
Hint: semparallel [Processing]
Hint: md5 [Processing]
Hint: nimconf [Processing]
Hint: scriptconfig [Processing]
Hint: modules [Processing]
Hint: replayer [Processing]
Hint: passaux [Processing]
Hint: depends [Processing]
Hint: cbackend [Processing]
Hint: dce [Processing]
Hint: integrity [Processing]
Hint: navigator [Processing]
E:\Nim\compiler\ic\navigator.nim(16, 6) Warning: imported and not used: 'os' [UnusedImport]
Hint: jsgen [Processing]
Hint: sourcemap [Processing]
Hint: docgen [Processing]
Hint: rst [Processing]
Hint: rstast [Processing]
Hint: dochelpers [Processing]
Hint: lists [Processing]
Hint: strscans [Processing]
Hint: highlite [Processing]
Hint: rstgen [Processing]
Hint: xmltree [Processing]
Hint: typesrenderer [Processing]
Hint: renderverbatim [Processing]
Hint: uri [Processing]
Hint: base64 [Processing]
Hint: nodejs [Processing]
Hint: docgen2 [Processing]
Hint: cmdlinehelper [Processing]
Hint: browsers [Processing]
Hint: operation successful (177358 lines compiled; 12.355 sec total; 631.508MiB peakmem; Release Build) [SuccessX]
bin\nim.exe jsonscript --noNimblePath --nimcache:nimcache/r_windows_amd64 -d:release --cc:vcc --skipUserCfg --skipParentCfg compiler\nim.nim
Hint: used config file 'E:\Nim\config\nim.cfg' [Conf]
Hint: used config file 'E:\Nim\compiler\nim.cfg' [Conf]
Hint: used config file 'E:\Nim\config\config.nims' [Conf]
E:\Nim\lib\system.nim(27, 48) Warning: unknown magic 'ZeroDefault' might crash the compiler [UnknownMagic]
CC: stdlib_exceptions.nim
CC: stdlib_ctypes.nim
CC: stdlib_digitsutils.nim
CC: stdlib_assertions.nim
CC: stdlib_dollars.nim
CC: stdlib_dragonbox.nim
CC: stdlib_schubfach.nim
CC: stdlib_formatfloat.nim
CC: stdlib_system.nim
CC: stdlib_parseutils.nim
CC: stdlib_math.nim
CC: stdlib_algorithm.nim
CC: stdlib_enumutils.nim
CC: stdlib_unicode.nim
CC: stdlib_strutils.nim
CC: stdlib_ntpath.nim
CC: stdlib_pathnorm.nim
CC: stdlib_dynlib.nim
CC: stdlib_widestrs.nim
CC: stdlib_exitprocs.nim
CC: stdlib_syncio.nim
CC: stdlib_winlean.nim
CC: stdlib_oserrors.nim
CC: stdlib_times.nim
CC: stdlib_oscommon.nim
CC: stdlib_ospaths2.nim
CC: stdlib_osfiles.nim
CC: stdlib_osdirs.nim
CC: stdlib_win_setenv.nim
CC: stdlib_envvars.nim
CC: stdlib_osappdirs.nim
CC: stdlib_os.nim
CC: stdlib_parseopt.nim
CC: stdlib_hashes.nim
CC: stdlib_strtabs.nim
CC: stdlib_tables.nim
CC: stdlib_strformat.nim
CC: stdlib_terminal.nim
CC: stdlib_sets.nim
CC: pathutils.nim
CC: ropes.nim
CC: lineinfos.nim
CC: platform.nim
CC: prefixmatches.nim
CC: nimpaths.nim
CC: stdlib_objectdollar.nim
CC: stdlib_globs.nim
CC: options.nim
CC: msgs.nim
CC: condsyms.nim
CC: wordrecg.nim
CC: idents.nim
CC: int128.nim
CC: ast.nim
CC: llstream.nim
CC: nimlexbase.nim
CC: lexer.nim
CC: renderer.nim
CC: modulepaths.nim
CC: stdlib_streams.nim
CC: stdlib_win_getsysteminfo.nim
CC: stdlib_cpuinfo.nim
CC: stdlib_osproc.nim
CC: stdlib_sha1.nim
CC: stdlib_lexbase.nim
CC: stdlib_parsejson.nim
CC: stdlib_json.nim
CC: stdlib_jsonutils.nim
CC: extccomp.nim
CC: nimblecmd.nim
CC: commands.nim
CC: parser.nim
CC: filters.nim
CC: filter_tmpl.nim
CC: syntaxes.nim
CC: stdlib_packedsets.nim
CC: rodutils.nim
CC: astalgo.nim
CC: trees.nim
CC: md5_old.nim
CC: btrees.nim
CC: packages.nim
CC: ic/rodfiles.nim
CC: ic/bitabs.nim
CC: ic/packed_ast.nim
CC: ic/ic.nim
CC: modulegraphs.nim
CC: astmsgs.nim
CC: types.nim
CC: magicsys.nim
CC: bitsets.nim
CC: nimsets.nim
CC: semfold.nim
Error: execution of an external compiler program 'vccexe.exe /c --platform:amd64 /nologo -DWIN32_LEAN_AND_MEAN /O2 /IE:\Nim\lib /IE:\Nim\lib\wrappers\libffi\common /IE:\Nim\compiler /FoE:\Nim\nimcache\r_windows_amd64\@[email protected] E:\Nim\nimcache\r_windows_amd64\@[email protected]' failed with exit code: 2
@[email protected]
E:\Nim\nimcache\r_windows_amd64\@[email protected](1287): error C2059: erro de sintaxe: '}'
FAILURE
I don't believe it's "important", but I reported it if the team deems it necessary to use another commit for csource that manages to generate valid code for vcc.
Edit:
nim -v (csource)
Nim Compiler Version 1.0.11 [Windows: amd64]
Compiled at 2020-12-21
Copyright (c) 2006-2019 by Andreas Rumpf
git hash: 19440baa807bbda58290ac9d491c9aa8a2bea2fa
active boot switches: -d:release -d:danger
line that causes the error:
NIM_CONST tyObject_PackedNode__4DO5SncX6BltUGwnK9bpl3Q TM__mJObP0PRzfMjXxDpaIgosg_83 = {((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ) 164), 0, ((NI32) 1), {}, {}};
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.