Merge pull request #51 from gradha/pr_compile_with_stable_compiler

Compile with stable compiler
This commit is contained in:
Dominik Picheta 2014-07-17 20:22:55 +01:00
commit 2f73377f46
4 changed files with 34 additions and 6 deletions

View file

@ -9,4 +9,4 @@ bin = "babel"
srcDir = "src" srcDir = "src"
[Deps] [Deps]
Requires: "nimrod >= 0.9.5" Requires: "nimrod >= 0.9.4"

View file

@ -10,9 +10,9 @@ package creation.
## Installation ## Installation
You will need development version 0.9.5 of the [Nimrod compiler from You will need version 0.9.4 (or better) of the [Nimrod
GitHub](https://github.com/Araq/Nimrod). To run babel you will need to have compiler](http://nimrod-lang.org/download.html). To run babel you will need to
installed some of the tools it depends on to check out source code. For have installed some of the tools it depends on to check out source code. For
instance, if a package is hosted on [Github](https://github.com) you require to instance, if a package is hosted on [Github](https://github.com) you require to
have [git](http://www.git-scm.com) installed and added to your environment have [git](http://www.git-scm.com) installed and added to your environment
``PATH``. Same goes for [Mercurial](http://mercurial.selenic.com) repositories ``PATH``. Same goes for [Mercurial](http://mercurial.selenic.com) repositories

View file

@ -6,8 +6,8 @@ import httpclient, parseopt, os, strutils, osproc, pegs, tables, parseutils,
from sequtils import toSeq from sequtils import toSeq
import babelpkg/packageinfo, babelpkg/version, babelpkg/tools, babelpkg/download, import babelpkg/packageinfo, babelpkg/version, babelpkg/tools,
babelpkg/config babelpkg/download, babelpkg/config, babelpkg/compat
when not defined(windows): when not defined(windows):
from posix import getpid from posix import getpid

28
src/babelpkg/compat.nim Normal file
View file

@ -0,0 +1,28 @@
# Copyright (C) Dominik Picheta. All rights reserved.
# BSD License. Look at license.txt for more info.
## This module contains additional code from the development version of
## Nimrod's standard library. These procs are required to be able to compile
## against the last stable release 0.9.4. Once 0.9.6 is release these procs
## will disappear.
import json
when not defined(`json.{}`):
proc `{}`*(node: PJsonNode, key: string): PJsonNode =
## Transverses the node and gets the given value. If any of the
## names does not exist, returns nil
result = node
if isNil(node): return nil
result = result[key]
when not defined(`json.{}=`):
proc `{}=`*(node: PJsonNode, names: varargs[string], value: PJsonNode) =
## Transverses the node and tries to set the value at the given location
## to `value` If any of the names are missing, they are added
var node = node
for i in 0..(names.len-2):
if isNil(node[names[i]]):
node[names[i]] = newJObject()
node = node[names[i]]
node[names[names.len-1]] = value