SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
C83 λカ娘の販促にやってきました


    Kiwamu Okabe
あんた誰?
☆ Twitter: @master_q
☆ ミラクル・リナックス勤務
☆ 前はコピー機のOSをNetBSDで作ってた
☆ デジタルサイネージのソフト開発してます
☆ OSSに興味のある{エンジニア,インターン}
募集中です!
参照透明な海を守る会メンバーは
λカ娘4巻を今執筆中です。 コミックマーケット
83にて配布予定です。 がむば!
http://www.paraiso-lang.org/ikmsm/books/c83.html
どんな記事になりそう?
ぼくの記事だけさらっと紹介します
記事のはじまり
今の体型 Haskellサイド
-- File: Fib.hs
module Fib where
import Foreign.C.Types

foreign export ccall fib :: CInt -> IO CInt

fibonacci   :: [CInt]
fibonacci   = 1:1:zipWith (+) fibonacci (tail fibonacci)

fib   :: CInt -> IO   CInt
fib   n | 0 <= n &&   n <= 40 = return $ fibonacci !! fromIntegral n
        | otherwise   = return 0
今の体型 C言語サイド
/* File: CMain.c */
#include <stdio.h>
#include "HsFFI.h"
#ifdef __GLASGOW_HASKELL__
#include "Fib_stub.h"
#endif

int main(int argc, char *argv[])
{
        int i;

       hs_init(&argc, &argv);
       for (i = 0; i < 30; i++) {
               printf("%dn", fib(i));
       }
       hs_exit();
       return 0;
}
ダイエット指標1
text/data/bssセクションの合計サイズをダイ
エット
$ make
gcc -I/usr/lib/ghc/include -c CMain.c
/usr/local/ghc7.6.1/bin/ghc -O2 -c Fib.hs
/usr/local/ghc7.6.1/bin/ghc -O2 -no-hs-main CMain.o Fib.o -o FibHs
$ size FibHs
   text    data     bss     dec     hex filename
2784310 290592    47960 3122862 2fa6ae FibHs
ダイエット指標2
実行バイナリがリンクしているライブラリ数をダ
イエット
$ ldd FibHs
  linux-vdso.so.1 => (0x00007fffaefff000)
  libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10
(0x00007f625b0ee000)
  libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f625ae6c000)
  librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1
(0x00007f625ac63000)
  libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
(0x00007f625aa5f000)
  libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
(0x00007f625a849000)
  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f625a4be000)
  libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007f625a2a2000)
  /lib64/ld-linux-x86-64.so.2 (0x00007f625b394000)
$ ldd FibHs | wc -l
9
ダイエット指標3
実行バイナリ内の未解決シンボル数をダイエッ
ト
$ nm FibHs
--snip--
0000000000669d8e   t   dlmmap_locked
000000000066a08b   t   dlmunmap
                   U   dlopen@@GLIBC_2.2.5
00000000006698a8   t   dlpvalloc
000000000066978a   t   dlrealloc
                   U   dlsym@@GLIBC_2.2.5
0000000000669877   t   dlvalloc
--snip--
$ nm FibHs | grep -c "U "
175
RTSの中で不要コード削除したよ
☆ セクション合計サイズ(Byte):
3122862 => 3046840
☆ 動的リンクライブラリ数:
9 => 8 (libdl.so.2へのリンク削除)
☆ 未解決シンボル数:
175 => 145
ダイエット作戦はまだまだある!
是非 参照透明な海を守る会ブースへ!
 http://twitcmap.jp/?id=0083-3-YYa-02-a

Weitere ähnliche Inhalte

Was ist angesagt?

R以外の研究ツール
R以外の研究ツールR以外の研究ツール
R以外の研究ツール
弘毅 露崎
 
Jsonデモの概要
Jsonデモの概要Jsonデモの概要
Jsonデモの概要
Hiroki Ito
 
長いの
長いの長いの
長いの
emasaka
 

Was ist angesagt? (19)

R以外の研究ツール
R以外の研究ツールR以外の研究ツール
R以外の研究ツール
 
ファイルの隠し方
ファイルの隠し方ファイルの隠し方
ファイルの隠し方
 
CouchDBをヤラナイカ
CouchDBをヤラナイカCouchDBをヤラナイカ
CouchDBをヤラナイカ
 
My misstake on Ansible’s lineinfile module
My misstake on Ansible’s lineinfile moduleMy misstake on Ansible’s lineinfile module
My misstake on Ansible’s lineinfile module
 
コロナ禍の所蔵品検索システム
コロナ禍の所蔵品検索システムコロナ禍の所蔵品検索システム
コロナ禍の所蔵品検索システム
 
Jsonデモの概要
Jsonデモの概要Jsonデモの概要
Jsonデモの概要
 
20131109 ruby conf2013
20131109 ruby conf201320131109 ruby conf2013
20131109 ruby conf2013
 
What is visor_fs_201207_customize
What is visor_fs_201207_customizeWhat is visor_fs_201207_customize
What is visor_fs_201207_customize
 
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
 
Node 学園祭 2012 用
Node 学園祭 2012 用Node 学園祭 2012 用
Node 学園祭 2012 用
 
ET2016展示パネル
ET2016展示パネルET2016展示パネル
ET2016展示パネル
 
長いの
長いの長いの
長いの
 
20160618 第23回シェル芸勉強会LT コマンドプロンプト芸
20160618 第23回シェル芸勉強会LT コマンドプロンプト芸20160618 第23回シェル芸勉強会LT コマンドプロンプト芸
20160618 第23回シェル芸勉強会LT コマンドプロンプト芸
 
Rubyにメソッドを追加して遊ぶ話
Rubyにメソッドを追加して遊ぶ話Rubyにメソッドを追加して遊ぶ話
Rubyにメソッドを追加して遊ぶ話
 
Symfony2からdoctrine mongo db odmを使ってみる
Symfony2からdoctrine mongo db odmを使ってみるSymfony2からdoctrine mongo db odmを使ってみる
Symfony2からdoctrine mongo db odmを使ってみる
 
MongoDBのアレをアレする
MongoDBのアレをアレするMongoDBのアレをアレする
MongoDBのアレをアレする
 
Wikibana - 戦うblogに恋するWiki
Wikibana - 戦うblogに恋するWikiWikibana - 戦うblogに恋するWiki
Wikibana - 戦うblogに恋するWiki
 
Casperjsのインストール
CasperjsのインストールCasperjsのインストール
Casperjsのインストール
 
2015-09-02 @ 大型実験施設とスーパーコンピュータとの連携利用シンポジウム
2015-09-02 @ 大型実験施設とスーパーコンピュータとの連携利用シンポジウム2015-09-02 @ 大型実験施設とスーパーコンピュータとの連携利用シンポジウム
2015-09-02 @ 大型実験施設とスーパーコンピュータとの連携利用シンポジウム
 

Ähnlich wie C83 λカ娘の販促にやってきました

Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介
Kiwamu Okabe
 
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
MITSUNARI Shigeo
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
Yoshiki Shibukawa
 
081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.ppt
Naoya Ito
 

Ähnlich wie C83 λカ娘の販促にやってきました (20)

Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介
 
PECL を数えてみた
PECL を数えてみたPECL を数えてみた
PECL を数えてみた
 
Vyatta 改造入門
Vyatta 改造入門Vyatta 改造入門
Vyatta 改造入門
 
アセンブラ漢文
アセンブラ漢文アセンブラ漢文
アセンブラ漢文
 
InfiniBand on Debian
InfiniBand on DebianInfiniBand on Debian
InfiniBand on Debian
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
 
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
 
golang binary hacks
golang binary hacksgolang binary hacks
golang binary hacks
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
 
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
 
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
 
Open VZ
Open VZOpen VZ
Open VZ
 
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
 
081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.ppt
 
Build Node.js-WASM/WASI Tiny compiler with Node.js
Build Node.js-WASM/WASI Tiny compiler with Node.jsBuild Node.js-WASM/WASI Tiny compiler with Node.js
Build Node.js-WASM/WASI Tiny compiler with Node.js
 
Metahub for github
Metahub for githubMetahub for github
Metahub for github
 

Kürzlich hochgeladen

Kürzlich hochgeladen (11)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: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...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介: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 カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: 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
 

C83 λカ娘の販促にやってきました