core :: union_find
union–find algorithm using an efficient disjoint-set data structurebucketed_game :: bucketed_game
Game framework with an emphasis on efficient event coordinationaccept_scroll_and_zoom
gamnit :: camera_control_android
Two fingers camera manipulation, pinch to zoom and slide to scrollgamnit :: camera_control_linux
Mouse wheel and middle mouse button to control camerapthreads :: concurrent_array_and_barrier
A basic usage example of the modulespthreads
and pthreads::cocurrent_collections
pthreads :: concurrent_collections
Introduces thread-safe concurrent collectionsserialization :: custom_serialization
Example of an ad hoc serializer that is tailored to transform business specific objects into customized representation.egl
, sdl
and x11
FileServer
action, which is a standard and minimal file server
cocoa :: foundation
The Foundation Kit provides basic Objective-C classes and structuresfunctional_types.nit
functional :: functional_types
This module provides functional type to represents various function forms.gtk :: gtk_assistant
gtk :: gtk_dialogs
HttpRequest
class and services to create it
app::http_request
main service AsyncHttpRequest
Serializable::inspect
to show more useful information
Iterator
.
actors :: mandelbrot
Example implemented from "The computer Language Benchmarks Game" - Mandelbrotmarkdown2 :: markdown_html_rendering
HTML rendering of Markdown documentsmarkdown2 :: markdown_latex_rendering
LaTeX rendering of Markdown documentsmarkdown2 :: markdown_man_rendering
Manpages rendering of Markdown documentsmarkdown2 :: markdown_md_rendering
Markdown rendering of Markdown documentsmore_collections :: more_collections
Highly specific, but useful, collections-related classes.mpi :: mpi_simple
curl :: native_curl
Binding of C libCurl which allow us to interact with network.app.nit
on Android using a custom Java entry point
nitcc_runtime :: nitcc_runtime
Runtime library required by parsers and lexers generated by nitccnlp :: nlp_server
glesv2 :: opengles2_hello_triangle
Basic example of OpenGL ES 2.0 usage using SDL 2performance_analysis :: performance_analysis
Services to gather information on the performance of events by categoriesrestful
annotation documented at lib/nitcorn/restful.nit
sax :: sax_locator
Interface for associating a SAX event with a document location.Locator
.
msgpack :: serialization_common
Serialization services forserialization_write
and serialization_read
serialization :: serialization_core
Abstract services to serialize Nit objects to different formatsdeserialize_json
and JsonDeserializer
msgpack :: serialization_write
Serialize full Nit objects to MessagePack formatserialize_to_json
and JsonSerializer
root
to execute
agent_simulation
by refining the Agent class to make
socket :: socket_simple_server
Simple server example using a non-blockingTCPServer
EulerCamera
and App::frame_core_draw
to get a stereoscopic view
gamnit :: texture_atlas_parser
Tool to parse XML texture atlas and generated Nit code to access subtextures
# Access to the environment variables of the process
module environ
import text
import file
# TODO prevoir une structure pour recup tout un environ, le modifier et le passer a process
redef class String
# Return environment value for the symbol.
# If there is no such environment variable, then return ""
#
# assert "PATH".environ != ""
# assert "NIT %\n".environ == ""
fun environ: String
do
var res = self.to_cstring.get_environ
# FIXME: There is no proper way to handle NULL C string yet. What a pitty.
var nulstr = once ("".to_cstring.get_environ)
if res != nulstr then
return res.to_s
else
return ""
end
end
# Set the enviroment value of a variable.
#
# "NITis".setenv("fun")
# assert "NITis".environ == "fun"
fun setenv(v: String) do to_cstring.setenv( v.to_cstring )
# Search for the program `self` in all directories from `PATH`
fun program_is_in_path: Bool
do
var sep = if is_windows then ";" else ":"
var full_path = "PATH".environ
var paths = full_path.split(sep)
for path in paths do if path.file_exists then
if path.join_path(self).file_exists then return true
if is_windows and (path / self + ".exe").file_exists then return true
end
return false
end
end
redef class CString
private fun get_environ: CString `{ return getenv(self); `}
private fun setenv(value: CString) `{
#ifdef _WIN32
_putenv_s(self, value);
#else
setenv(self, value, 1);
#endif
`}
end
redef class Sys
redef init
do
var x = "NIT_SRAND".environ
if x != "" then srand_from(x.to_i)
end
end
lib/core/environ.nit:14,1--78,3