SlideShare a Scribd company logo
1 of 22
Elixir v1.3で入る(かもな)機能
自己紹介
name = 橘田隼一
|> TwitterID = hayabusa333
|> heart = [カーネル, GC, Erlang, Elixir]
|> jobs = 派遣ウェッブプログラマ
|> position = [Joel教, 翔鶴瑞鶴仲良し姉妹同盟]
ElixirとPhoenixの薄い本を出しました(ページ数:240)
電子書籍版をBOOTHで販売中
https://hayabusa333.booth.pm/items/186705
自己紹介(宣伝)
本日のお話
Elixir v1.3で入ってくるであろう機
能(3月19日時点)の一部の機能を紹
介していきます
目次
• Calendar/Date/Time/NaiveDateTime/DateTi
me型の定義の追加
• —logger-otp-reports と —logger-sasl-
reports オプションの追加
• with句にelseが追加
• mix app.tree と mix deps.tree
• mix escript
Calendar/Date/Time/NaiveDateTime
DateTime型の定義の追加
Elixirに上記の型の内部定義について追加
されました。
例:
Calendarのyearはinteger型とか
Calendar/Date/Time/NaiveDateTime
DateTime型の定義の追加
Calendar/Date/Time/NaiveDateTime
DateTime型の定義の追加
今回の型定義が入ることにより
Elixirにて時刻系の型は、ライブラ
リごとに違っていたものが統一さ
れることになるようです
—logger-otp-reports と —logger-sasl-
reports オプションの追加
elixir —logger-otp-reports true
elixir —ligger-sasl-reports true
など、elixirコマンドにオプションと
して渡すことにより、OTPやSASL
のレポートを出すようになりました
—logger-otp-reports と —logger-sasl-
reports オプションの追加
こちらの修正については、
erl -boot start_sasl で取得できるレ
ポートを出せるようにElixirから
Erlang側の呼び出しのオプション
追加となります
with句にelseが追加
with句にて、今までは
with (式), (式), do: (結果判定)
のような形でしたが
with (式), (式), do: (結果判定), else: (結果判定)
のような形での記載ができるようになりました
Elixir v1.2 例
iex(1)> with {:ok, contents} <- File.read("my_hoge.ex"),
...(1)> {res, binding} <- Code.eval_string(contents),
...(1)> do: {:ok, res}, else: {:error, _}
** (CompileError) iex:1: undefined function with/3
Elixir v1.3 例
iex(1)> with {:ok, contents} <- File.read("my_hoge.ex"),
...(1)> {res, binding} <- Code.eval_string(contents),
...(1)> do: {:ok, res}, else: {:error, :enoent}
** (FunctionClauseError) no function clause matching in
:elixir_with.expand_else/2
(elixir) src/elixir_with.erl:58:
:elixir_with.expand_else({:error, :enoent},
%Macro.Env{aliases: [], context: nil, context_modules: [],
export_vars: nil, file: "iex", function: nil, functions:
[{IEx.Helpers, [c: 1, c: 2, cd: 1, clear: 0, flush: 0, h: 0, i:
with句にelseが追加
申し訳ありません。正常に動くコードの記載ま
で確認できませんでした。
mix app.tree と mix deps.tree
新規に追加された タスクとして
mix app.tree
mix deps.tree
の2つが追加されました
mix app.tree 実行例
mix deps.tree 実行例
mix escript
mix escript
mix escript.build
mix escript.install
mix escript.uninstall
の4つのタスクが増えています。
mix escript
mix escript.install (PATH/URL)
mix escript.uninstall
は ~/.mix/escript の配下に escriptを保存するよう
になっています
mix escript
mix escript
mix escript.build
にて保存しているescriptから環境を構築すること
が可能となっているようです。
他には
• コンパイル時のモジュールの欠落のエラーメッセージ改善
• File.copy/3 にてIOデバイスのサポート追加
• %module{key: “value”} = struct のような構造体のパターン
マッチが実行できるようになりました。
• Process.sleep/1 のような timeを指定して、プロセスを
sleepできるようになりました。
• Unicode 8.0.0へと更新
• テスト毎に属性をクリーンアップできるように
ExUnit.Case.register_attribute が追加
• MIX_DEBUG=1が設定されている場合にMix.Errorをスタッ
クトレースに表示するようになりました。
まとめ
Elixir v1.3の更新内容だけでも、け
っこう多い(非推奨機能とかは今日
は話してない)
他の更新内容は、ハードリカーエン
ジニアのブログにて公開しています
ご静聴ありがとうございました

More Related Content

More from hayabusa333

Cbで解るjojo up
Cbで解るjojo upCbで解るjojo up
Cbで解るjojo up
hayabusa333
 
アイマスで分かるプログラマ
アイマスで分かるプログラマアイマスで分かるプログラマ
アイマスで分かるプログラマ
hayabusa333
 
漏れのある抽象化の法則
漏れのある抽象化の法則漏れのある抽象化の法則
漏れのある抽象化の法則
hayabusa333
 
DevLove2012 懇親会LT
DevLove2012 懇親会LTDevLove2012 懇親会LT
DevLove2012 懇親会LT
hayabusa333
 
RubyでBLコマンド実装
RubyでBLコマンド実装RubyでBLコマンド実装
RubyでBLコマンド実装
hayabusa333
 
Androidについて
AndroidについてAndroidについて
Androidについて
hayabusa333
 

More from hayabusa333 (20)

Cowboyとphoenixの速度比較
Cowboyとphoenixの速度比較Cowboyとphoenixの速度比較
Cowboyとphoenixの速度比較
 
E言語スタック
E言語スタックE言語スタック
E言語スタック
 
Elixirのhoundを使ってみて
Elixirのhoundを使ってみてElixirのhoundを使ってみて
Elixirのhoundを使ってみて
 
Erlang and Elixir
Erlang and ElixirErlang and Elixir
Erlang and Elixir
 
IEXを学ぶ
IEXを学ぶIEXを学ぶ
IEXを学ぶ
 
Getting test world
Getting test worldGetting test world
Getting test world
 
Cowboyとelixir
CowboyとelixirCowboyとelixir
Cowboyとelixir
 
派遣社員が現場にRubyを取り入れるまで
派遣社員が現場にRubyを取り入れるまで派遣社員が現場にRubyを取り入れるまで
派遣社員が現場にRubyを取り入れるまで
 
現場にsahaginを取り入れた話
現場にsahaginを取り入れた話現場にsahaginを取り入れた話
現場にsahaginを取り入れた話
 
ホワイトボックステスト技法
ホワイトボックステスト技法ホワイトボックステスト技法
ホワイトボックステスト技法
 
ブラックボックステスト技法
ブラックボックステスト技法ブラックボックステスト技法
ブラックボックステスト技法
 
自動化のその前に
自動化のその前に自動化のその前に
自動化のその前に
 
Serverspecの本気をみるのです
Serverspecの本気をみるのですServerspecの本気をみるのです
Serverspecの本気をみるのです
 
Jenkinsとidobataで幸せな生活
Jenkinsとidobataで幸せな生活Jenkinsとidobataで幸せな生活
Jenkinsとidobataで幸せな生活
 
Cbで解るjojo up
Cbで解るjojo upCbで解るjojo up
Cbで解るjojo up
 
アイマスで分かるプログラマ
アイマスで分かるプログラマアイマスで分かるプログラマ
アイマスで分かるプログラマ
 
漏れのある抽象化の法則
漏れのある抽象化の法則漏れのある抽象化の法則
漏れのある抽象化の法則
 
DevLove2012 懇親会LT
DevLove2012 懇親会LTDevLove2012 懇親会LT
DevLove2012 懇親会LT
 
RubyでBLコマンド実装
RubyでBLコマンド実装RubyでBLコマンド実装
RubyでBLコマンド実装
 
Androidについて
AndroidについてAndroidについて
Androidについて
 

Recently uploaded

Recently uploaded (11)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

Elixir v1.3 で入るかもしれない機能