Git Product home page Git Product logo

wandbox-builder's Introduction

Wandbox Builder

Wandbox の各種コンパイラを生成するためのツール

ライセンス

Boost Software License 1.0

wandbox-builder's People

Contributors

cia-rana avatar demotomohiro avatar faithandbrave avatar hapo31 avatar kfly8 avatar kkebo avatar masahitojp avatar melpon avatar nekketsuuu avatar osyo-manga avatar paihu avatar rhysd avatar shogo82148 avatar srz-zumix avatar strangerxxxx avatar superkooka avatar take-cheeze avatar thinca avatar tzik avatar ubnt-intrepid avatar voluntas avatar wx257osn2 avatar xuwei-k avatar yutopp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

wandbox-builder's Issues

Skip first time exeuction for dotnet

Hello!

Could the following environment variables be set in order to prevent the output below from displaying?

Translated: 以下の出力が表示されないようにするために、次の環境変数を設定できますか?

  DOTNET_NOLOGO=true
  DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
Welcome to .NET 5.0!
---------------------
SDK Version: 5.0.201

Telemetry
---------
The .NET tools collect usage data in order to help us improve your experience. It is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.

Read more about .NET CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry

----------------
Installed an ASP.NET Core HTTPS development certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only).
Learn about HTTPS: https://aka.ms/dotnet-https
----------------
Write your first app: https://aka.ms/dotnet-hello-world
Find out what's new: https://aka.ms/dotnet-whats-new
Explore documentation: https://aka.ms/dotnet-docs
Report issues and find source on GitHub: https://github.com/dotnet/core
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
--------------------------------------------------------------------------------------

Ref: Headline/discord-compiler-bot#187

Support for Kotlin lang

Kotlin is used by many developers and continues to grow every year. It may be good to support this language as well.

GHC Haskell is broken...

With the new reorganization of the Wandbox website and reduction of number of supported languages as well as supported versions of each language, somehow the inclusion of the libgmp library that is necessary for GHC Haskell to run is not available to GHC; thus, GHC Haskell is currently unusable on the Wandbox website.

While you are at it, could you make LLVM available to GHC as well (LLVM opt and llc), since using the optional GHC LLVM backend can make a huge difference in performance? New versions of the GHC Haskell compiler as are supported here may complain if the LLVM version is not the exact version as tested but newer versions than tested will generally run fine on LLVM version 13 in my experience.

Crystal 0.23.1 can't be built with Crystal 0.24.x

Problem

Currently, ./install.sh 0.23.1 for Crystal fails with a compilation error. I know it succeeded in the past, but now it doesn't.

How to reproduce

wandbox-builder/build$ sudo ./docker-run.sh crystal
/var/work/crystal# ./install.sh 0.23.1

(omit some lines here)

+ cd crystal-0.23.1/
+ make -j2 verbose=1
Using /usr/bin/llvm-config-3.8 [version=3.8.0]
g++ -c  -o src/llvm/ext/llvm_ext.o src/llvm/ext/llvm_ext.cc `/usr/bin/llvm-config-3.8 --cxxflags`
cc -fPIC    -c -o src/ext/sigfault.o src/ext/sigfault.c
ar -rcs src/ext/libcrystal.a src/ext/sigfault.o
CRYSTAL_CONFIG_PATH=`pwd`/src ./bin/crystal build  -o .build/crystal src/compiler/crystal.cr -D without_openssl -D without_zlib
Error in src/compiler/crystal.cr:6: while requiring "./crystal/**"

require "./crystal/**"
^

in src/compiler/crystal/formatter.cr:10: while requiring "./tools/formatter"

require "./tools/formatter"
^

in src/compiler/crystal/tools/formatter.cr:1: while requiring "../syntax"

require "../syntax"
^

in src/compiler/crystal/syntax.cr:10: while requiring "./syntax/**"

require "./syntax/**"
^

Syntax error in src/compiler/crystal/syntax/parser.cr:3957: duplicate when :+ in case

      when :CHAR, :STRING, :DELIMITER_START, :STRING_ARRAY_START, :SYMBOL_ARRAY_START, :NUMBER, :IDENT, :SYMBOL, :INSTANCE_VAR, :CLASS_VAR, :CONST, :GLOBAL, :"$~", :"$?", :GLOBAL_MATCH_DATA_INDEX, :REGEX, :"(", :"!", :"[", :"[]", :"+", :"-", :"~", :"&", :"->", :"{{", :__LINE__, :__END_LINE__, :__FILE__, :__DIR__, :UNDERSCORE
                                                                                                                                                                                                                                      ^

Makefile:116: recipe for target '.build/crystal' failed
make: *** [.build/crystal] Error 1

Workaround & Proposal

It seems that this error is caused by compiling Crystal by a newer version of Crystal compiler. Currently, apt install crystal installs Crystal 0.24.1, and the build fails with it. (It also fails with 0.24.0.) However, the build succeeds with manually-installed Crystal 0.22.0. So this problem might be caused by the upgrade of the Crystal compiler installed by apt.

Therefore, how about installing an old compiler from https://github.com/crystal-lang/crystal/releases? I don't know if it's OK for the Wandbox installation policy, but if this is OK I will be able to send a pull req.

Environment

  • Host: Ubuntu 17.10
  • Docker 17.12.0-ce
  • Wandbox-builder a216d20

Support for Julia Language

Please add support for Julia compilers, as it is a language with math support and used for mathematical programming, and has a lot of potentials.

Can be available network access in Wandbox?

Hello. Thank you for providing such a great online compiler.

Today I want to use Deno in Wandbox, so I cloned the repository and made configuration files (takker99@f6c8cf7).
However, I realized that Wandbox forbid network access, according to the paragraph.

Without network access, Deno can do nothing but completely standalone typescripts.
Are there any ways to allow network access with enough security?

Integration test of crystal-0.23.1 failed due to lack of memory

In my environment, the integration test of Crystal 0.23.1 sometimes fails. An error message says this is because of a lack of memory. Can anyone reproduce this behavior?

Details

After installing cattleshed, kennel and crystal-0.23.1, the unit test of crystal-0.23.1 was successful.

test$ sudo ./docker-testrun.sh crystal
root@9394edf570fb:/var/work/crystal# ./test.sh 0.23.1
+++ pwd
++ CURRENT_DIR=/var/work/crystal
++++ dirname ./test.sh
+++ cd .
+++ pwd
++ BASE_DIR=/var/work/crystal
+ '[' 1 -lt 1 ']'
+ VERSION=0.23.1
+ PREFIX=/opt/wandbox/crystal-0.23.1
+ cd /root/
++ /opt/wandbox/crystal-0.23.1/bin/crystal /var/work/crystal/resources/test.cr
Using compiled compiler at `.build/crystal'
+ test hello = hello

The integration test of it, however, sometimes failed. The following is the main error message.

GC Warning: Failed to expand heap by 65536 bytes
GC Warning: Out of Memory! Heap size: 60 MiB. Returning NULL!
Invalid memory access (signal 11) at address 0x4018

The full output with docker logs test-server is here.

I think a memory limit of cattleshed may be related to this behaviour because if I removed the line "--data=134217728", from the settings for melpon2-default written in wandbox/cattleshed/etc/cattleshed.conf, the error didn't occur.

wandbox-builder$ cat ./wandbox/cattleshed/etc/cattleshed.conf | python -c 'import ast, pprint, sys; pprint.pprint(ast.literal_eval(sys.stdin.read())["jail"]["melpon2-default"])'
{'compile-time-limit': 60,
 'jail-command': ['/usr/bin/env',
                  'HOME=/home/jail',
                  '/usr/bin/nice',
                  '/opt/wandbox/cattleshed/bin/prlimit',
                  '--core=0',
                  '--as=1073741824',
                  '--cpu=30',
                  '--fsize=134217728',
                  '--nofile=256',
                  '--nproc=256',
                  '--',
                  '/opt/wandbox/cattleshed/bin/cattlegrid',
                  '--rootdir=./jail',
                  '--mount=/bin,/etc,/lib,/lib64,/usr/bin,/usr/lib,/usr/include,/opt/wandbox,/usr/share',
                  '--rwmount=/tmp=./jail/tmp,/home/jail=./store',
                  '--devices=/dev/null,/dev/zero,/dev/full,/dev/random,/dev/urandom',
                  '--chdir=/home/jail',
                  '--'],
 'kill-wait': 5,
 'output-limit-kill': 262144,
 'output-limit-warn': 131072,
 'program-duration': 60}
wandbox-builder$ cd test && sudo ./run-test.sh crystal-0.23.1
32256df6cab4963bf4369cee051b71571c14e5f28b4cc86438afd0923f56c05e
wait: kennel port...
opened
crystal-0.23.1: ok
test-server
2ce5c06ceef6
32256df6cab4

Environment: Ubuntu 16.10 (host), Docker 17.06.0-ce, Wandbox Builder 48a7dfa (latest)

Clang16.0.1でビルドしたバイナリがSEGVする

  • 昨日追加したClang 16.0.1に関して,コンパイルまでは通るものの出力バイナリを実行するとSEGVを起こして死にます(原因がよくわからず…)
    • https://wandbox.org/permlink/tKgspk5UxctBqatO
    • 適当に手元の環境(≠github actionsの環境)で同じ条件(clang;clang-tools-extra, libcxx;libcxxabi)でビルドしたClang 16.0.1は普通に動くので,流石にすべてを破壊するリリースが誰のチェックもなされずに行われたみたいな荒唐無稽な状況ではなさそう
    • 同じ条件でビルドされたHEADが普通に動いてるので,だいぶ謎…

How to install external shared library?

I'm trying to build the SML# compiler on Wandbox.
However, the compiler needs some libraries such as LLVM 3.7.1, YAJL 2 and MassiveThreads 0.99, which are not installed in melpon/wandbox:test-server. They are required not only to build the compiler, but also to run that.

Therefore, when I tested the compiler, it outputted some errors as follows.

/opt/wandbox/smlsharp-3.3.0/bin/smlsharp: error while loading shared libraries: libLLVM-3.7.so.1: cannot open shared object file: No such file or directory

These libraries except for MassiveThreads are indeed necessary; the details are written in §5.3 of the document of SML#.

How should I handle this problem? For example, should I self-compile the libraries like Boost library does?

libcurl is missed when building kennel on melpon/wandbox:kennel

When I ran sudo ./docker-run.sh kennel and ./install.sh, the following error occurred.

root@nek:/var/work/kennel# ./install.sh
    :
    :
+ ./configure --prefix=/opt/wandbox/kennel --with-cppcms=/usr/local/cppcms --with-cppdb=/usr/local/cppdb
    :
    :
checking for curl_easy_init in -lcurl... no
configure: error: missing curl function

(The full log is here.)

I think the docker image melpon/wandbox:kennel may need libcurl4. For example, if I installed libcurl4-openssl-dev before running install.sh, kennel was successfully built.

$ sudo ./docker-run.sh kennel
root@nek:/var/work/kennel# apt update
root@nek:/var/work/kennel# apt install libcurl4-openssl-dev
root@nek:/var/work/kennel# ./install.sh  # Success!

Notes

  • There are three packages of libcurl4 for Ubuntu 16.04: libcurl4-openssl-dev, libcurl4-gnutls-dev and libcurl4-nss-dev (ref).

  • Actually, libcurl3 and libcurl3-gnutls are installed on wandbox:kennel.

    root@nek:/var/work/kennel# ldconfig -p | grep libcurl
    	libcurl.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcurl.so.4
    	libcurl-gnutls.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
    
  • The check for curl is implemented at this commit.

  • Maybe melpon/wandbox:test-server also needs libcurl. When I ran kennel on that image, an error error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory occurred.

Environment: Ubuntu 16.10 (host), Docker 17.06.0-ce

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.