Julia Juno Jupyter part1 [無断転載禁止]©2ch.net (745レス)
1-

92: 2016/07/20(水)12:33 ID:IKGpFUMW(1/2) AAS
笑いどころがわからない

配列用でないreinterpretはconvertと違って慎重に使うべきもの

julia> reinterpret(Bool, 256)
false
これは気持ち悪い

……と開発者も思ったらしくv0.5ではエラーになる見込み
93: 2016/07/20(水)21:10 ID:AXsJLLhK(1) AAS
間にscheme入ってるならpythonに近い文法に変換するのも簡単に出来るのでは?
94: 2016/07/20(水)22:23 ID:IKGpFUMW(2/2) AAS
pythonに近い文法を求めているならpython使えばいいんでは?
てかschemeに何の関係が?
95: 2016/07/21(木)18:47 ID:Vj/xPVWN(1) AAS
S式でなんでもできるのは面白いな
96: 2016/07/21(木)18:53 ID:IyjPITzN(1) AAS
マクロで真っ黒
97
(1): 2016/07/22(金)11:45 ID:f6dSUOKk(1/2) AAS
>>7-11 >>25 >>28 >>30-32
定義はmacro使うと楽

macro c(restype, fnc, argtypes)
local args = [symbol("a", n) for n in 1:length(argtypes.args)]
quote
$(esc(fnc))($(args...)) = ccall($(string(fnc)), $restype, $argtypes, $(args...))
end
end

@c UInt32 printf (Ptr{Cchar},)
@c UInt32 printf (Ptr{Cchar}, UInt32,)

printf(pointer(Array{UInt8,1}([65,66,0,67,68,0,0])))
printf("%s\n", pointer(Array{UInt8,1}([65,66,0,67,68,0,0])))

macro m(lib, restype, fnc, argtypes)
local args = [symbol("a", n) for n in 1:length(argtypes.args)]
quote
$(esc(fnc))($(args...)) = ccall(($(string(fnc)), $(Expr(:quote, lib))), $restype, $argtypes, $(args...))
end
end

@m libcurl Cint curl_free (Ptr{Void},)
@m libcurl Ptr{Cchar} curl_getenv (Ptr{Cchar},)
@m libcurl Ptr{Cchar} curl_version ()

v = curl_getenv("TZ")
printf(v)
curl_free(v)
printf(curl_version())
98
(1): 2016/07/22(金)11:49 ID:f6dSUOKk(2/2) AAS
>>9

macro w(lib, restype, fnc, argtypes)
local args = [symbol("a", n) for n in 1:length(argtypes.args)]
quote
$(esc(fnc))($(args...)) = ccall(($(string(fnc)), $(Expr(:quote, lib))), stdcall, $restype, $argtypes, $(args...))
end
end

@w user32 UInt32 MessageBoxA (UInt32, Ptr{Cchar}, Ptr{Cchar}, UInt32,)

MessageBoxA(C_NULL, "hage", "title", 1)
99: 2016/07/22(金)13:42 ID:hQsD+JBa(1) AAS
>>97-98
32bit 限定のコードを書くべきじゃないな
100: 2016/07/22(金)15:31 ID:TotCshYe(1) AAS
呼び出すライブラリの仕様は確定しているのだから実用上問題ないのでは?
101: 2016/07/23(土)10:27 ID:6lYjBmg5(1/3) AAS
ヒ素2さんかな(ヒソヒソ)
102: 2016/07/23(土)11:05 ID:+Jc7SqHC(1/4) AAS
x = UInt32(0x12345678)
a = pointer_to_array(convert(Ptr{UInt8}, pointer_from_objref(x)), 4)
a[2] = 51
println(@sprintf "%08X" x) # 0x12343378
103: 2016/07/23(土)11:07 ID:+Jc7SqHC(2/4) AAS
immutable TT
a::UInt16
b::UInt16
end
x = UInt32(0x12345678)
a = pointer_to_array(convert(Ptr{TT}, pointer_from_objref(x)), 1)
println(a) # [TT(0x5678,0x1234)]
a[].a = 0xaabb # ERROR: type TT is immutable
104: 2016/07/23(土)11:12 ID:+Jc7SqHC(3/4) AAS
type XX
a::UInt16
b::UInt16
end
x = UInt32(0x12345678)
# ↑ここまでは動く
a = pointer_to_array(convert(Ptr{XX}, pointer_from_objref(x)), 1)
# ↑インタプリタ環境だとこれを実行した時点で環境ごと落ちる (下へ行くケースあり)
println("reach here")
println(a)
# インタプリタの外から julia hoge.jl で実行したときは println(a) まで実行すると落ちる
105: 2016/07/23(土)11:13 ID:+Jc7SqHC(4/4) AAS
なぜでしょう?(unsafeなことしてるのは判ってるのですが・・・)
106: 2016/07/23(土)12:22 ID:lFeXmVIf(1) AAS
なぜって自分でbitstypeでもimmutableでもないって分かっている書きぶりじゃん
その上で聞いているならソース読め
107
(1): 2016/07/23(土)17:00 ID:6lYjBmg5(2/3) AAS
へー Julia ってこういう壊れ方するのかー

julia> n = UInt32(3)
0x00000003

julia> p = Ptr{UInt32}(pointer_from_objref(n))
Ptr{UInt32} @0x06e474f0

julia> pointer_to_array(p, 1)
1-element Array{UInt32,1}:
0x00000003

julia> UInt32(3)
0x00000003

julia> pointer_to_array(p, 1)[] = 9
9

julia> UInt32(3)
0x00000009
108
(1): 2016/07/23(土)17:11 ID:6lYjBmg5(3/3) AAS
こうなってるのかー
気付かんかったわー

julia> e = UInt32(11)
0x0000000b

julia> f = UInt32(11)
0x0000000b

julia> p = Ptr{UInt32}(pointer_from_objref(e))
Ptr{UInt32} @0x06e47770

julia> pointer_to_array(p, 1)
1-element Array{UInt32,1}:
0x0000000b

julia> UInt32(11)
0x0000000b

julia> pointer_to_array(p, 1)[] = 17
17

julia> UInt32(11)
0x00000011

julia> f
0x00000011
109: 2016/07/24(日)09:37 ID:wdZTIji9(1/2) AAS
インタラクティブシェルのヒストリーってどうやったら消せるん?
110: 2016/07/24(日)09:48 ID:wdZTIji9(2/2) AAS
~/.julia_history 消したら解決しました!
111
(1): 2016/07/25(月)18:13 ID:r9xhFlm6(1) AAS
Cのunionと同じような機能ってreinterpret以外にないの?
112
(1): 2016/07/26(火)10:16 ID:oKnTJYes(1) AAS
transpose と ctranspose って何が違うん?
113: 2016/07/26(火)10:29 ID:As2nHGxN(1) AAS
>>112
cはcomplex(複素数)のconjugate
114: 2016/07/27(水)09:34 ID:nl1cCFz0(1) AAS
>>107-108
julia> 100
100

julia> 100 - 23
77

julia> 100 + 23
123

julia> pointer_to_array(Ptr{Int}(pointer_from_objref(100)), 1)[] = 119
119

julia> 100
119

julia> 100 - 19
119 # ← ここだけ納得いかない

julia> 100 + 19
138
115: 2016/07/27(水)22:18 ID:vxMObH7b(1) AAS
納得いかないのが納得いかない
"100" - 19
→ 119 - 19
→"100"
→ 119
116: 2016/07/28(木)19:00 ID:O8Vfrh0P(1) AAS
なるほど!
目から鱗でした
117: 2016/07/31(日)11:27 ID:DMqYYSfk(1) AAS
llvm使いたくない。gccではビルドできないの?
118
(1): 2016/08/01(月)12:23 ID:6PNy08If(1/2) AAS
C++AMPもそうだったんだけど
llvmがバージョンアップするとC++AMPの仕様も変わったりして
誰も安定してC++AMPを利用できなったので
C++AMPは消えたと思う

juliaがllvm使ってるのは嫌な予感しかしない
119: 2016/08/01(月)15:22 ID:JXVULl1x(1/2) AAS
コンパイル遅すぎ
120: 2016/08/01(月)16:51 ID:8rwcghCB(1/2) AAS
寧ろgccの方が先行き不安なような
121: 2016/08/01(月)17:20 ID:6PNy08If(2/2) AAS
llvmは安定して使うことよりもgccの妨害が目的っぽい部分があって
利用者は軽視(gccの足引っ張りが重要)

そんな印象がある
1-
あと 624 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.020s