Skip to content

Commit 62d0317

Browse files
repaired and new languages added
1 parent 4e183d2 commit 62d0317

File tree

3 files changed

+259
-45
lines changed

3 files changed

+259
-45
lines changed

Dockerfile

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,10 @@ RUN curl -O https://download.oracle.com/java/24/latest/jdk-24_linux-x64_bin.deb
142142
&& rm jdk-24_linux-x64_bin.deb
143143

144144
### Julia
145-
RUN curl -fsSL https://install.julialang.org | sh -s -- -y
145+
RUN curl -fsSL https://install.julialang.org | sh -s -- -y \
146+
&& echo 'export PATH="$PATH:/root/.juliaup/bin"' >> /etc/profile \
147+
&& echo 'export PATH="$PATH:/root/.juliaup/bin"' >> /root/.bashrc \
148+
&& ln -s /root/.juliaup/bin/julia /usr/local/bin/julia
146149

147150
### Zig
148151
RUN curl -fLO https://ziglang.org/download/0.14.0/zig-linux-x86_64-0.14.0.tar.xz \
@@ -214,6 +217,24 @@ RUN npm install --global solc
214217
# Q# (Quantum)
215218
RUN dotnet tool install -g Microsoft.Quantum.IQSharp
216219

220+
# SelectScript
221+
RUN curl https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein \
222+
-o /usr/local/bin/lein \
223+
&& chmod +x /usr/local/bin/lein \
224+
&& git clone --recursive https://github.com/andre-dietrich/SelectScriptC.git \
225+
&& cd SelectScriptC \
226+
&& make \
227+
&& make install
228+
229+
RUN apt-get update && \
230+
apt-get install -y --no-install-recommends \
231+
libobjc-12-dev \
232+
gnustep \
233+
gnustep-devel \
234+
libgnustep-base-dev \
235+
libblocksruntime-dev \
236+
clang
237+
217238
#############################################################################################
218239
COPY . /coderunner
219240
WORKDIR "/coderunner"
@@ -235,6 +256,32 @@ RUN firejail || true
235256
RUN firejail || true
236257
RUN firejail || true
237258

259+
# Modula 2 requirement
260+
ENV GM2PATH=/usr/share/gm2
261+
262+
RUN mv /usr/bin/gm2 /usr/bin/gm2.real && \
263+
printf '#!/bin/sh\nexec /usr/bin/gm2.real -g -I. -flibs=pim,iso,cor "$@"\n' > /usr/bin/gm2 && \
264+
chmod +x /usr/bin/gm2
265+
266+
# Create Objective-C compiler script with GNUstep configuration
267+
RUN printf '#!/bin/bash\n\
268+
if [ $# -lt 1 ]; then\n\
269+
echo "Usage: gobjc source_file [output_name]"\n\
270+
exit 1\n\
271+
fi\n\
272+
\n\
273+
SOURCEFILE="$1"\n\
274+
FILENAME=$(basename -- "$SOURCEFILE")\n\
275+
BASENAME="${FILENAME%%.*}"\n\
276+
\n\
277+
# Use second argument as output name if provided, otherwise use source basename\n\
278+
OUTPUT="${2:-$BASENAME}"\n\
279+
\n\
280+
. /usr/share/GNUstep/Makefiles/GNUstep.sh\n\
281+
gcc -std=gnu11 -x objective-c $(gnustep-config --objc-flags) -o "$OUTPUT" "$SOURCEFILE" $(gnustep-config --base-libs)\n\
282+
' > /usr/local/bin/gobjc && \
283+
chmod +x /usr/local/bin/gobjc
284+
238285
EXPOSE 4000
239286

240-
CMD python3 -m server --host 0.0.0.0 --port $PORT
287+
ENTRYPOINT ["python3","-m","server","--host","0.0.0.0","--port","4000"]

0 commit comments

Comments
 (0)