cd src; make clean
cd tests; make clean
cd share/man; make clean
- for directory in $(extras); do \
- (cd "$$directory" && $(MAKE) clean); \
+ -for directory in $(extras); do \
+ (echo "CLEANING $$directory" && cd "$$directory" && $(MAKE) clean); \
done
+ @echo ""
+ @echo "Nit was succesfully cleaned."
\ No newline at end of file
$(CC) $(LDFLAGS) -o 'nitc' nitc__nith.classes.1.o nitc__nith.classes.2.o nitc__nith.classes.3.o nitc__nith.classes.4.o nitc__nith.classes.5.o nitc__nith.classes.6.o nitc__nith.main.1.o nitc__nith.sep.1.o nitc__modelize_property.sep.1.o nitc__modelize_property.sep.2.o nitc__modelize_property.sep.3.o nitc__modelize_class.sep.1.o nitc__modelbuilder.sep.1.o nitc__loader.sep.1.o nitc__loader.sep.2.o nitc__modelbuilder_base.sep.1.o nitc__model.sep.1.o nitc__model.sep.2.o nitc__model.sep.3.o nitc__mmodule.sep.1.o nitc__mpackage.sep.1.o nitc__model_base.sep.1.o nitc__location.sep.1.o core__ropes.sep.1.o core__flat.sep.1.o core__flat.sep.2.o core__abstract_text.sep.1.o core__native.sep.1.o core__kernel.sep.1.o core__math.sep.1.o core__abstract_collection.sep.1.o core__list.sep.1.o core__array.sep.1.o core__circular_array.sep.1.o core__sorter.sep.1.o core__hash_collection.sep.1.o core__fixed_ints.sep.1.o core__string_search.sep.1.o core__fixed_ints_text.sep.1.o core__environ.sep.1.o core__file.sep.1.o core__stream.sep.1.o core__error.sep.1.o core__bytes.sep.1.o core__utf8.sep.1.o core__time.sep.1.o core__exec.sep.1.o more_collections.sep.1.o poset.sep.1.o nitc__mdoc.sep.1.o ordered_tree.sep.1.o nitc__toolcontext.sep.1.o opts.sep.1.o nitc__version.sep.1.o template.sep.1.o nitc__parser.sep.1.o nitc__parser.sep.2.o nitc__parser.sep.3.o nitc__parser.sep.4.o nitc__parser.sep.5.o nitc__parser.sep.6.o nitc__parser.sep.7.o nitc__parser_prod.sep.1.o nitc__parser_prod.sep.2.o nitc__parser_prod.sep.3.o nitc__parser_prod.sep.4.o nitc__parser_prod.sep.5.o nitc__parser_prod.sep.6.o nitc__lexer.sep.1.o nitc__parser_nodes.sep.1.o nitc__lexer_work.sep.1.o nitc__tables.sep.1.o nitc__parser_work.sep.1.o ini.sep.1.o nitc__phase.sep.1.o nitc__annotation.sep.1.o nitc__literal.sep.1.o nitc__transform.sep.1.o nitc__astbuilder.sep.1.o nitc__typing.sep.1.o nitc__typing.sep.2.o nitc__typing.sep.3.o nitc__local_var_init.sep.1.o nitc__flow.sep.1.o nitc__scope.sep.1.o nitc__astvalidation.sep.1.o nitc__auto_super_init.sep.1.o nitc__rapid_type_analysis.sep.1.o csv.sep.1.o nitc__separate_erasure_compiler.sep.1.o nitc__separate_erasure_compiler.sep.2.o nitc__separate_compiler.sep.1.o nitc__separate_compiler.sep.2.o nitc__separate_compiler.sep.3.o nitc__separate_compiler.sep.4.o nitc__separate_compiler.sep.5.o nitc__separate_compiler.sep.6.o nitc__abstract_compiler.sep.1.o nitc__abstract_compiler.sep.2.o nitc__abstract_compiler.sep.3.o nitc__abstract_compiler.sep.4.o nitc__abstract_compiler.sep.5.o nitc__abstract_compiler.sep.6.o nitc__abstract_compiler.sep.7.o nitc__platform.sep.1.o nitc__c_tools.sep.1.o nitc__mixin.sep.1.o counter.sep.1.o nitc__coloring.sep.1.o nitc__light_only.sep.1.o nitc__light.sep.1.o nitc__light_ffi.sep.1.o nitc__nitni_utilities.sep.1.o nitc__nitni_base.sep.1.o nitc__light_ffi_base.sep.1.o nitc__extern_classes.sep.1.o nitc__light_c.sep.1.o nitc__nith.types.1.o nitc__nith.types.2.o nitc__nith.types.3.o nitc__nith.types.4.o nitc__nith.types.5.o nitc__nith.types.6.o nitc__nith.types.7.o nitc__nith.types.8.o nitc__nith.types.9.o nitc__nith.types.10.o nitc__nith.types.11.o nitc__nith.types.12.o nitc__nith.types.13.o nitc__nith.types.14.o nitc__nith.types.15.o nitc__nith.types.16.o nitc__nith.types.17.o nitc__nith.types.18.o nitc__nith.types.19.o nitc__nith.types.20.o nitc__nith.types.21.o nitc__nith.types.22.o nitc__nith.types.23.o nitc__nith.types.24.o nitc__nith.types.25.o nitc__nith.types.26.o nitc__nith.types.27.o nitc__nith.types.28.o nitc__nith.types.29.o nitc__nith.types.30.o nitc__nith.types.31.o nitc__nith.types.32.o nitc__nith.types.33.o tables_nit.extern.o c_functions_hash.extern.o gc_chooser.extern.o core__abstract_text._ffi.extern.o core__abstract_text._nitni.extern.o core__native._ffi.extern.o core__native._nitni.extern.o core__kernel._ffi.extern.o core__kernel._nitni.extern.o core__math._ffi.extern.o core__math._nitni.extern.o core__fixed_ints_text._ffi.extern.o core__fixed_ints_text._nitni.extern.o core__environ._ffi.extern.o core__environ._nitni.extern.o core__file._ffi.extern.o core__file._nitni.extern.o core__time._ffi.extern.o core__time._nitni.extern.o core__exec._ffi.extern.o core__exec._nitni.extern.o $(LDLIBS) `pkg-config --libs bdw-gc`
clean:
- rm nitc__nith.classes.1.o nitc__nith.classes.2.o nitc__nith.classes.3.o nitc__nith.classes.4.o nitc__nith.classes.5.o nitc__nith.classes.6.o nitc__nith.main.1.o nitc__nith.sep.1.o nitc__modelize_property.sep.1.o nitc__modelize_property.sep.2.o nitc__modelize_property.sep.3.o nitc__modelize_class.sep.1.o nitc__modelbuilder.sep.1.o nitc__loader.sep.1.o nitc__loader.sep.2.o nitc__modelbuilder_base.sep.1.o nitc__model.sep.1.o nitc__model.sep.2.o nitc__model.sep.3.o nitc__mmodule.sep.1.o nitc__mpackage.sep.1.o nitc__model_base.sep.1.o nitc__location.sep.1.o core__ropes.sep.1.o core__flat.sep.1.o core__flat.sep.2.o core__abstract_text.sep.1.o core__native.sep.1.o core__kernel.sep.1.o core__math.sep.1.o core__abstract_collection.sep.1.o core__list.sep.1.o core__array.sep.1.o core__circular_array.sep.1.o core__sorter.sep.1.o core__hash_collection.sep.1.o core__fixed_ints.sep.1.o core__string_search.sep.1.o core__fixed_ints_text.sep.1.o core__environ.sep.1.o core__file.sep.1.o core__stream.sep.1.o core__error.sep.1.o core__bytes.sep.1.o core__utf8.sep.1.o core__time.sep.1.o core__exec.sep.1.o more_collections.sep.1.o poset.sep.1.o nitc__mdoc.sep.1.o ordered_tree.sep.1.o nitc__toolcontext.sep.1.o opts.sep.1.o nitc__version.sep.1.o template.sep.1.o nitc__parser.sep.1.o nitc__parser.sep.2.o nitc__parser.sep.3.o nitc__parser.sep.4.o nitc__parser.sep.5.o nitc__parser.sep.6.o nitc__parser.sep.7.o nitc__parser_prod.sep.1.o nitc__parser_prod.sep.2.o nitc__parser_prod.sep.3.o nitc__parser_prod.sep.4.o nitc__parser_prod.sep.5.o nitc__parser_prod.sep.6.o nitc__lexer.sep.1.o nitc__parser_nodes.sep.1.o nitc__lexer_work.sep.1.o nitc__tables.sep.1.o nitc__parser_work.sep.1.o ini.sep.1.o nitc__phase.sep.1.o nitc__annotation.sep.1.o nitc__literal.sep.1.o nitc__transform.sep.1.o nitc__astbuilder.sep.1.o nitc__typing.sep.1.o nitc__typing.sep.2.o nitc__typing.sep.3.o nitc__local_var_init.sep.1.o nitc__flow.sep.1.o nitc__scope.sep.1.o nitc__astvalidation.sep.1.o nitc__auto_super_init.sep.1.o nitc__rapid_type_analysis.sep.1.o csv.sep.1.o nitc__separate_erasure_compiler.sep.1.o nitc__separate_erasure_compiler.sep.2.o nitc__separate_compiler.sep.1.o nitc__separate_compiler.sep.2.o nitc__separate_compiler.sep.3.o nitc__separate_compiler.sep.4.o nitc__separate_compiler.sep.5.o nitc__separate_compiler.sep.6.o nitc__abstract_compiler.sep.1.o nitc__abstract_compiler.sep.2.o nitc__abstract_compiler.sep.3.o nitc__abstract_compiler.sep.4.o nitc__abstract_compiler.sep.5.o nitc__abstract_compiler.sep.6.o nitc__abstract_compiler.sep.7.o nitc__platform.sep.1.o nitc__c_tools.sep.1.o nitc__mixin.sep.1.o counter.sep.1.o nitc__coloring.sep.1.o nitc__light_only.sep.1.o nitc__light.sep.1.o nitc__light_ffi.sep.1.o nitc__nitni_utilities.sep.1.o nitc__nitni_base.sep.1.o nitc__light_ffi_base.sep.1.o nitc__extern_classes.sep.1.o nitc__light_c.sep.1.o nitc__nith.types.1.o nitc__nith.types.2.o nitc__nith.types.3.o nitc__nith.types.4.o nitc__nith.types.5.o nitc__nith.types.6.o nitc__nith.types.7.o nitc__nith.types.8.o nitc__nith.types.9.o nitc__nith.types.10.o nitc__nith.types.11.o nitc__nith.types.12.o nitc__nith.types.13.o nitc__nith.types.14.o nitc__nith.types.15.o nitc__nith.types.16.o nitc__nith.types.17.o nitc__nith.types.18.o nitc__nith.types.19.o nitc__nith.types.20.o nitc__nith.types.21.o nitc__nith.types.22.o nitc__nith.types.23.o nitc__nith.types.24.o nitc__nith.types.25.o nitc__nith.types.26.o nitc__nith.types.27.o nitc__nith.types.28.o nitc__nith.types.29.o nitc__nith.types.30.o nitc__nith.types.31.o nitc__nith.types.32.o nitc__nith.types.33.o tables_nit.extern.o c_functions_hash.extern.o gc_chooser.extern.o core__abstract_text._ffi.extern.o core__abstract_text._nitni.extern.o core__native._ffi.extern.o core__native._nitni.extern.o core__kernel._ffi.extern.o core__kernel._nitni.extern.o core__math._ffi.extern.o core__math._nitni.extern.o core__fixed_ints_text._ffi.extern.o core__fixed_ints_text._nitni.extern.o core__environ._ffi.extern.o core__environ._nitni.extern.o core__file._ffi.extern.o core__file._nitni.extern.o core__time._ffi.extern.o core__time._nitni.extern.o core__exec._ffi.extern.o core__exec._nitni.extern.o 2>/dev/null
+ rm -f nitc__nith.classes.1.o nitc__nith.classes.2.o nitc__nith.classes.3.o nitc__nith.classes.4.o nitc__nith.classes.5.o nitc__nith.classes.6.o nitc__nith.main.1.o nitc__nith.sep.1.o nitc__modelize_property.sep.1.o nitc__modelize_property.sep.2.o nitc__modelize_property.sep.3.o nitc__modelize_class.sep.1.o nitc__modelbuilder.sep.1.o nitc__loader.sep.1.o nitc__loader.sep.2.o nitc__modelbuilder_base.sep.1.o nitc__model.sep.1.o nitc__model.sep.2.o nitc__model.sep.3.o nitc__mmodule.sep.1.o nitc__mpackage.sep.1.o nitc__model_base.sep.1.o nitc__location.sep.1.o core__ropes.sep.1.o core__flat.sep.1.o core__flat.sep.2.o core__abstract_text.sep.1.o core__native.sep.1.o core__kernel.sep.1.o core__math.sep.1.o core__abstract_collection.sep.1.o core__list.sep.1.o core__array.sep.1.o core__circular_array.sep.1.o core__sorter.sep.1.o core__hash_collection.sep.1.o core__fixed_ints.sep.1.o core__string_search.sep.1.o core__fixed_ints_text.sep.1.o core__environ.sep.1.o core__file.sep.1.o core__stream.sep.1.o core__error.sep.1.o core__bytes.sep.1.o core__utf8.sep.1.o core__time.sep.1.o core__exec.sep.1.o more_collections.sep.1.o poset.sep.1.o nitc__mdoc.sep.1.o ordered_tree.sep.1.o nitc__toolcontext.sep.1.o opts.sep.1.o nitc__version.sep.1.o template.sep.1.o nitc__parser.sep.1.o nitc__parser.sep.2.o nitc__parser.sep.3.o nitc__parser.sep.4.o nitc__parser.sep.5.o nitc__parser.sep.6.o nitc__parser.sep.7.o nitc__parser_prod.sep.1.o nitc__parser_prod.sep.2.o nitc__parser_prod.sep.3.o nitc__parser_prod.sep.4.o nitc__parser_prod.sep.5.o nitc__parser_prod.sep.6.o nitc__lexer.sep.1.o nitc__parser_nodes.sep.1.o nitc__lexer_work.sep.1.o nitc__tables.sep.1.o nitc__parser_work.sep.1.o ini.sep.1.o nitc__phase.sep.1.o nitc__annotation.sep.1.o nitc__literal.sep.1.o nitc__transform.sep.1.o nitc__astbuilder.sep.1.o nitc__typing.sep.1.o nitc__typing.sep.2.o nitc__typing.sep.3.o nitc__local_var_init.sep.1.o nitc__flow.sep.1.o nitc__scope.sep.1.o nitc__astvalidation.sep.1.o nitc__auto_super_init.sep.1.o nitc__rapid_type_analysis.sep.1.o csv.sep.1.o nitc__separate_erasure_compiler.sep.1.o nitc__separate_erasure_compiler.sep.2.o nitc__separate_compiler.sep.1.o nitc__separate_compiler.sep.2.o nitc__separate_compiler.sep.3.o nitc__separate_compiler.sep.4.o nitc__separate_compiler.sep.5.o nitc__separate_compiler.sep.6.o nitc__abstract_compiler.sep.1.o nitc__abstract_compiler.sep.2.o nitc__abstract_compiler.sep.3.o nitc__abstract_compiler.sep.4.o nitc__abstract_compiler.sep.5.o nitc__abstract_compiler.sep.6.o nitc__abstract_compiler.sep.7.o nitc__platform.sep.1.o nitc__c_tools.sep.1.o nitc__mixin.sep.1.o counter.sep.1.o nitc__coloring.sep.1.o nitc__light_only.sep.1.o nitc__light.sep.1.o nitc__light_ffi.sep.1.o nitc__nitni_utilities.sep.1.o nitc__nitni_base.sep.1.o nitc__light_ffi_base.sep.1.o nitc__extern_classes.sep.1.o nitc__light_c.sep.1.o nitc__nith.types.1.o nitc__nith.types.2.o nitc__nith.types.3.o nitc__nith.types.4.o nitc__nith.types.5.o nitc__nith.types.6.o nitc__nith.types.7.o nitc__nith.types.8.o nitc__nith.types.9.o nitc__nith.types.10.o nitc__nith.types.11.o nitc__nith.types.12.o nitc__nith.types.13.o nitc__nith.types.14.o nitc__nith.types.15.o nitc__nith.types.16.o nitc__nith.types.17.o nitc__nith.types.18.o nitc__nith.types.19.o nitc__nith.types.20.o nitc__nith.types.21.o nitc__nith.types.22.o nitc__nith.types.23.o nitc__nith.types.24.o nitc__nith.types.25.o nitc__nith.types.26.o nitc__nith.types.27.o nitc__nith.types.28.o nitc__nith.types.29.o nitc__nith.types.30.o nitc__nith.types.31.o nitc__nith.types.32.o nitc__nith.types.33.o tables_nit.extern.o c_functions_hash.extern.o gc_chooser.extern.o core__abstract_text._ffi.extern.o core__abstract_text._nitni.extern.o core__native._ffi.extern.o core__native._nitni.extern.o core__kernel._ffi.extern.o core__kernel._nitni.extern.o core__math._ffi.extern.o core__math._nitni.extern.o core__fixed_ints_text._ffi.extern.o core__fixed_ints_text._nitni.extern.o core__environ._ffi.extern.o core__environ._nitni.extern.o core__file._ffi.extern.o core__file._nitni.extern.o core__time._ffi.extern.o core__time._nitni.extern.o core__exec._ffi.extern.o core__exec._nitni.extern.o 2>/dev/null
# assert "0x64".to_i == 100
# assert "0b1100_0011".to_i== 195
# assert "--12".to_i == 12
+ # assert "+45".to_i == 45
# ~~~
#
# REQUIRE: `self`.`is_int`
#
# assert "123".is_int
# assert "0b1011".is_int
+ # assert "-34".is_int
+ # assert "+45".is_int
# assert not "0x_".is_int
# assert not "0xGE".is_int
# assert not "".is_int
var s = remove_all('_')
var pos = 0
var len = s.length
- while pos < len and s[pos] == '-' do
+ while pos < len and (s[pos] == '-' or s[pos] == '+') do
pos += 1
end
s = s.substring_from(pos)
var val = 0
var neg = false
var pos = 0
- while s[pos] == '-' do
- neg = not neg
- pos += 1
+ loop
+ if s[pos] == '-' then
+ neg = not neg
+ pos += 1
+ else if s[pos] == '+' then
+ pos += 1
+ else
+ break
+ end
end
s = s.substring_from(pos)
if s.length >= 2 then
--- /dev/null
+# This is a basic install of Nit on a debian base.
+
+FROM debian:stretch
+MAINTAINER Jean Privat <jean@pryen.org>
+
+# Install dependencies
+RUN dpkg --add-architecture i386 \
+ && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ # Recomanded builds pakages
+ build-essential \
+ ccache \
+ libgc-dev \
+ graphviz \
+ libunwind-dev \
+ pkg-config \
+ # Get the code!
+ git \
+ ca-certificates \
+ curl \
+ libcurl4-openssl-dev \
+ # For nit manpages :)
+ man \
+ # Get pip3 for junit2html
+ python3-dev \
+ python3-pip \
+ python3-setuptools \
+ python3-wheel \
+ # Packages needed for lib/
+ gettext \
+ libegl1-mesa-dev \
+ libevent-dev \
+ libgles1-mesa-dev \
+ libgles2-mesa-dev \
+ libgtk-3-dev \
+ libgmp-dev \
+ libmongoc-dev \
+ libbson-dev libssl-dev \
+ libncurses5-dev \
+ libpq-dev \
+ libreadline-dev \
+ libsdl-image1.2-dev \
+ libsdl-ttf2.0-dev \
+ libsdl1.2-dev \
+ libsdl2-dev \
+ libsdl2-image-dev \
+ libsdl2-mixer-dev \
+ libsqlite3-dev \
+ libx11-dev \
+ libxdg-basedir-dev \
+ postgresql \
+ # Packages needed for contrib, platforms and FFI
+ ant \
+ clang \
+ cmake \
+ default-jdk \
+ file \
+ gnupg \
+ gnuplot-nox \
+ inkscape \
+ libopenmpi-dev \
+ time \
+ unzip \
+ valgrind \
+ zipalign \
+ # Android
+ libc6:i386 \
+ libstdc++6:i386 \
+ zlib1g:i386 \
+ # TODO neo4j mongodb neo4j emscripten test_glsl_validation
+ && curl -sL https://deb.nodesource.com/setup_8.x | bash - \
+ && apt-get install -y nodejs \
+ && rm -rf /var/lib/apt/lists/*
+
+# Setup environment variables
+ENV JAVA_HOME=/usr/lib/jvm/default-java/
+ENV JNI_LIB_PATH=$JAVA_HOME/jre/lib/amd64/server/
+ENV LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64/server/
+
+RUN pip3 install junit2html
+
+# Prepare to install npm (npm is not packaged for debian:stretch)
+RUN npm install pug-cli -g
--- /dev/null
+# Docker image to run nit continuous integrations
+
+This image is used to run CI tests for nit.
+Because there is currently a lot of libraries and tools in Nit, a lot of Debian packages and other pieces of software are required.
+
+Note: this image does not contain Nit but is used as a base image to run full tests.
end
makefile.write("{outpath}: {dep_rules.join(" ")}\n\t$(CC) $(LDFLAGS) -o {outpath.escape_to_sh} {ofiles.join(" ")} $(LDLIBS) {pkg}\n\n")
# Clean
- makefile.write("clean:\n\trm {ofiles.join(" ")} 2>/dev/null\n")
+ makefile.write("clean:\n\trm -f {ofiles.join(" ")} 2>/dev/null\n")
if outpath != real_outpath then
- makefile.write("\trm -- {outpath.escape_to_sh} 2>/dev/null\n")
+ makefile.write("\trm -f -- {outpath.escape_to_sh} 2>/dev/null\n")
end
makefile.close
self.toolcontext.info("Generated makefile: {makepath}", 2)
class G[E]
type V: nullable Object
- fun foo
+ fun foo1
do
bar(1)
+ end
+
+ fun foo2
+ do
baz(2)
end
redef type V: Char
end
-(new G[Object]).foo
-#alt1#(new H).foo
-#alt2#(new I).foo
+(new G[Object]).foo1
+(new G[Object]).foo2
+#alt1#(new H).foo1
+#alt1#(new H).foo2
+#alt2#(new I).foo1
+#alt2#(new I).foo2
-Runtime error: Cast failed. Expected `V`, got `Int` (alt/base_autocast_alt2.nit:23)
+Runtime error: Cast failed. Expected `V`, got `Int` (alt/base_autocast_alt2.nit:27)
1
2
1