Skip to content

Commit

Permalink
Merge branch 'jn/gensym2'
Browse files Browse the repository at this point in the history
Conflicts:
	src/julia-syntax.scm
  • Loading branch information
vtjnash committed Jan 30, 2015
2 parents 2bf7446 + d0fa2db commit a0266d4
Show file tree
Hide file tree
Showing 25 changed files with 4,388 additions and 3,992 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,6 @@
*.dSYM
*.jl.cov
*.jl.mem
*.ji

.DS_Store
1 change: 1 addition & 0 deletions base/base.jl
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ call(T::Type{NewvarNode}, s::Symbol) = Core.call(T, s)
call(T::Type{TopNode}, s::Symbol) = Core.call(T, s)
call(T::Type{Module}, args...) = Core.call(T, args...)
call(T::Type{Task}, f::ANY) = Core.call(T, f)
call(T::Type{GenSym}, n::Int) = Core.call(T, n)

call{T}(::Type{T}, args...) = convert(T, args...)::T

Expand Down
3 changes: 2 additions & 1 deletion base/boot.jl
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ export
AbstractArray, DenseArray,
# special objects
Box, Function, IntrinsicFunction, LambdaStaticData, Method, MethodTable,
Module, Symbol, Task, Array,
Module, Symbol, Task, Array, GenSym,
# numeric types
Bool, FloatingPoint, Float16, Float32, Float64, Number, Integer, Int, Int8, Int16,
Int32, Int64, Int128, Ptr, Real, Signed, UInt, UInt8, UInt16, UInt32,
Expand Down Expand Up @@ -274,6 +274,7 @@ _new(:GotoNode, :Int)
_new(:TopNode, :Symbol)
_new(:NewvarNode, :Symbol)
_new(:QuoteNode, :ANY)
_new(:GenSym, :Int)

Module(name::Symbol) = ccall(:jl_f_new_module, Any, (Any,), name)::Module
Module() = Module(:anonymous)
Expand Down
2 changes: 2 additions & 0 deletions base/expr.jl
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ gensym(s::UTF8String) = gensym(s.data)
gensym(a::Array{UInt8,1}) =
ccall(:jl_tagged_gensym, Any, (Ptr{UInt8}, Int32), a, length(a))::Symbol
gensym(ss::Union(ASCIIString, UTF8String)...) = map(gensym, ss)
gensym(s::Symbol) =
ccall(:jl_tagged_gensym, Any, (Ptr{UInt8}, Int32), s, ccall(:strlen, Csize_t, (Ptr{UInt8},), s))::Symbol

macro gensym(names...)
blk = Expr(:block)
Expand Down
Loading

0 comments on commit a0266d4

Please sign in to comment.