metasepi team meeting: ajhc project overview
DESCRIPTION
Metasepi team meeting: Ajhc Project OverviewTRANSCRIPT
![Page 1: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/1.jpg)
Metasepi team meeting: Ajhc Project Overview
Metasepi team meeting: Ajhc Project Overview
Metasepi team meeting: Ajhc Project Overview
Metasepi team meeting: Ajhc Project Overview
Metasepi team meeting:Ajhc Project Overview
Kiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu Okabe
![Page 2: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/2.jpg)
Who am I?Who am I?Who am I?Who am I?Who am I?
☆ http://www.masterq.net/☆ http://www.masterq.net/☆ http://www.masterq.net/☆ http://www.masterq.net/☆ http://www.masterq.net/
☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q
☆ Organizer of Metasepi project☆ Organizer of Metasepi project☆ Organizer of Metasepi project☆ Organizer of Metasepi project☆ Organizer of Metasepi project
☆ A developer of Ajhc Haskell compiler☆ A developer of Ajhc Haskell compiler☆ A developer of Ajhc Haskell compiler☆ A developer of Ajhc Haskell compiler☆ A developer of Ajhc Haskell compiler
☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer
☆ 10 years' experience in developing OS using NetBSD.☆ 10 years' experience in developing OS using NetBSD.☆ 10 years' experience in developing OS using NetBSD.☆ 10 years' experience in developing OS using NetBSD.☆ 10 years' experience in developing OS using NetBSD.
![Page 3: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/3.jpg)
AgendaAgendaAgendaAgendaAgenda
☆ [1] Demo☆ [1] Demo☆ [1] Demo☆ [1] Demo☆ [1] Demo
☆ [2] What is Ajhc?☆ [2] What is Ajhc?☆ [2] What is Ajhc?☆ [2] What is Ajhc?☆ [2] What is Ajhc?
☆ [3] What is Metasepi?☆ [3] What is Metasepi?☆ [3] What is Metasepi?☆ [3] What is Metasepi?☆ [3] What is Metasepi?
☆ [4] What is compiler to build OS☆ [4] What is compiler to build OS☆ [4] What is compiler to build OS☆ [4] What is compiler to build OS☆ [4] What is compiler to build OS
☆ [5] How to use Ajhc☆ [5] How to use Ajhc☆ [5] How to use Ajhc☆ [5] How to use Ajhc☆ [5] How to use Ajhc
☆ [6] Ajhc project overview☆ [6] Ajhc project overview☆ [6] Ajhc project overview☆ [6] Ajhc project overview☆ [6] Ajhc project overview
☆ [7] Ajhc project status☆ [7] Ajhc project status☆ [7] Ajhc project status☆ [7] Ajhc project status☆ [7] Ajhc project status
![Page 4: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/4.jpg)
[1] Demo[1] Demo[1] Demo[1] Demo[1] Demo
☆ RSS reader running on mbed (ARM).☆ RSS reader running on mbed (ARM).☆ RSS reader running on mbed (ARM).☆ RSS reader running on mbed (ARM).☆ RSS reader running on mbed (ARM).
☆ Show reddit articles on LCD display.☆ Show reddit articles on LCD display.☆ Show reddit articles on LCD display.☆ Show reddit articles on LCD display.☆ Show reddit articles on LCD display.
☆ You can watch the movie following.☆ You can watch the movie following.☆ You can watch the movie following.☆ You can watch the movie following.☆ You can watch the movie following.
http://bit.ly/mbedmovhttp://bit.ly/mbedmovhttp://bit.ly/mbedmovhttp://bit.ly/mbedmovhttp://bit.ly/mbedmov
![Page 5: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/5.jpg)
Demo hardwareDemo hardwareDemo hardwareDemo hardwareDemo hardware
Architecture: ARM Cortex-M3Architecture: ARM Cortex-M3Architecture: ARM Cortex-M3Architecture: ARM Cortex-M3Architecture: ARM Cortex-M3
RAM size: 64kBRAM size: 64kBRAM size: 64kBRAM size: 64kBRAM size: 64kB
IO: Ethernet, LED, LCD, SD Card, USB host/device, SerialIO: Ethernet, LED, LCD, SD Card, USB host/device, SerialIO: Ethernet, LED, LCD, SD Card, USB host/device, SerialIO: Ethernet, LED, LCD, SD Card, USB host/device, SerialIO: Ethernet, LED, LCD, SD Card, USB host/device, Serial
![Page 6: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/6.jpg)
Demo softwareDemo softwareDemo softwareDemo softwareDemo software
github.com/ajhc/demo-cortex-m3github.com/ajhc/demo-cortex-m3github.com/ajhc/demo-cortex-m3github.com/ajhc/demo-cortex-m3github.com/ajhc/demo-cortex-m3
![Page 7: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/7.jpg)
Demo source codeDemo source codeDemo source codeDemo source codeDemo source codedemo-cortex-m3`-- mbed-nxp-lpc1768 |-- BuildShell <= Compile enviroment |-- build | `-- mbed.ld <= Linker Sscript |-- external | `-- mbed | `-- LPC1768 | `-- GCC_ARM | `-- libmbed.a <= mbed library (compiled) |-- linux_install |-- samples | `-- Haskell_Http | |-- EthernetInterface <= TCP/IP protocol stack | |-- c_extern.h | |-- dummy4jhc.c <= C lanuage stub for Haskell | |-- hs_src | | `-- *.hs <= Haskell source code | |-- main.c <= C language main function | `-- mbed-rtos <= mbed-rtos OS `-- src `-- gcc4mbed.c
demo-cortex-m3`-- mbed-nxp-lpc1768 |-- BuildShell <= Compile enviroment |-- build | `-- mbed.ld <= Linker Sscript |-- external | `-- mbed | `-- LPC1768 | `-- GCC_ARM | `-- libmbed.a <= mbed library (compiled) |-- linux_install |-- samples | `-- Haskell_Http | |-- EthernetInterface <= TCP/IP protocol stack | |-- c_extern.h | |-- dummy4jhc.c <= C lanuage stub for Haskell | |-- hs_src | | `-- *.hs <= Haskell source code | |-- main.c <= C language main function | `-- mbed-rtos <= mbed-rtos OS `-- src `-- gcc4mbed.c
demo-cortex-m3`-- mbed-nxp-lpc1768 |-- BuildShell <= Compile enviroment |-- build | `-- mbed.ld <= Linker Sscript |-- external | `-- mbed | `-- LPC1768 | `-- GCC_ARM | `-- libmbed.a <= mbed library (compiled) |-- linux_install |-- samples | `-- Haskell_Http | |-- EthernetInterface <= TCP/IP protocol stack | |-- c_extern.h | |-- dummy4jhc.c <= C lanuage stub for Haskell | |-- hs_src | | `-- *.hs <= Haskell source code | |-- main.c <= C language main function | `-- mbed-rtos <= mbed-rtos OS `-- src `-- gcc4mbed.c
demo-cortex-m3`-- mbed-nxp-lpc1768 |-- BuildShell <= Compile enviroment |-- build | `-- mbed.ld <= Linker Sscript |-- external | `-- mbed | `-- LPC1768 | `-- GCC_ARM | `-- libmbed.a <= mbed library (compiled) |-- linux_install |-- samples | `-- Haskell_Http | |-- EthernetInterface <= TCP/IP protocol stack | |-- c_extern.h | |-- dummy4jhc.c <= C lanuage stub for Haskell | |-- hs_src | | `-- *.hs <= Haskell source code | |-- main.c <= C language main function | `-- mbed-rtos <= mbed-rtos OS `-- src `-- gcc4mbed.c
demo-cortex-m3`-- mbed-nxp-lpc1768 |-- BuildShell <= Compile enviroment |-- build | `-- mbed.ld <= Linker Sscript |-- external | `-- mbed | `-- LPC1768 | `-- GCC_ARM | `-- libmbed.a <= mbed library (compiled) |-- linux_install |-- samples | `-- Haskell_Http | |-- EthernetInterface <= TCP/IP protocol stack | |-- c_extern.h | |-- dummy4jhc.c <= C lanuage stub for Haskell | |-- hs_src | | `-- *.hs <= Haskell source code | |-- main.c <= C language main function | `-- mbed-rtos <= mbed-rtos OS `-- src `-- gcc4mbed.c
![Page 8: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/8.jpg)
[2] What is Ajhc?[2] What is Ajhc?[2] What is Ajhc?[2] What is Ajhc?[2] What is Ajhc?
http://ajhc.metasepi.org/http://ajhc.metasepi.org/http://ajhc.metasepi.org/http://ajhc.metasepi.org/http://ajhc.metasepi.org/
☆ Ajhc := A fork of jhc☆ Ajhc := A fork of jhc☆ Ajhc := A fork of jhc☆ Ajhc := A fork of jhc☆ Ajhc := A fork of jhc
☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler
☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/
☆ Jhc outputs binary that has low-memory-footprint and runs fast.☆ Jhc outputs binary that has low-memory-footprint and runs fast.☆ Jhc outputs binary that has low-memory-footprint and runs fast.☆ Jhc outputs binary that has low-memory-footprint and runs fast.☆ Jhc outputs binary that has low-memory-footprint and runs fast.
☆ Good for embedded software.☆ Good for embedded software.☆ Good for embedded software.☆ Good for embedded software.☆ Good for embedded software.
![Page 9: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/9.jpg)
Why need Ajhc?Why need Ajhc?Why need Ajhc?Why need Ajhc?Why need Ajhc?
☆ GHC is de facto standard on Haskell.☆ GHC is de facto standard on Haskell.☆ GHC is de facto standard on Haskell.☆ GHC is de facto standard on Haskell.☆ GHC is de facto standard on Haskell.
☆ GHC := Glasgow Haskell Compiler☆ GHC := Glasgow Haskell Compiler☆ GHC := Glasgow Haskell Compiler☆ GHC := Glasgow Haskell Compiler☆ GHC := Glasgow Haskell Compiler
☆ http://www.haskell.org/ghc/☆ http://www.haskell.org/ghc/☆ http://www.haskell.org/ghc/☆ http://www.haskell.org/ghc/☆ http://www.haskell.org/ghc/
☆ Why need another Haskell compiler?☆ Why need another Haskell compiler?☆ Why need another Haskell compiler?☆ Why need another Haskell compiler?☆ Why need another Haskell compiler?
☆ To develop kernel named "Metasepi".☆ To develop kernel named "Metasepi".☆ To develop kernel named "Metasepi".☆ To develop kernel named "Metasepi".☆ To develop kernel named "Metasepi".
![Page 10: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/10.jpg)
[3] What is Metasepi?[3] What is Metasepi?[3] What is Metasepi?[3] What is Metasepi?[3] What is Metasepi?
http://metasepi.org/http://metasepi.org/http://metasepi.org/http://metasepi.org/http://metasepi.org/
☆ Unix-like OS designed by strong type.☆ Unix-like OS designed by strong type.☆ Unix-like OS designed by strong type.☆ Unix-like OS designed by strong type.☆ Unix-like OS designed by strong type.
☆ Using ML or more strong type lang.☆ Using ML or more strong type lang.☆ Using ML or more strong type lang.☆ Using ML or more strong type lang.☆ Using ML or more strong type lang.
Haskell http://www.haskell.org/Haskell http://www.haskell.org/Haskell http://www.haskell.org/Haskell http://www.haskell.org/Haskell http://www.haskell.org/
OCaml http://caml.inria.fr/OCaml http://caml.inria.fr/OCaml http://caml.inria.fr/OCaml http://caml.inria.fr/OCaml http://caml.inria.fr/
MLton http://mlton.org/MLton http://mlton.org/MLton http://mlton.org/MLton http://mlton.org/MLton http://mlton.org/
. . . and suchlike.. . . and suchlike.. . . and suchlike.. . . and suchlike.. . . and suchlike.
![Page 11: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/11.jpg)
Why need Metasepi?Why need Metasepi?Why need Metasepi?Why need Metasepi?Why need Metasepi?
☆ We have already Linux or Windows.☆ We have already Linux or Windows.☆ We have already Linux or Windows.☆ We have already Linux or Windows.☆ We have already Linux or Windows.
☆ But the developers are suffering.☆ But the developers are suffering.☆ But the developers are suffering.☆ But the developers are suffering.☆ But the developers are suffering.
☆ If use the kernel changed by you,☆ If use the kernel changed by you,☆ If use the kernel changed by you,☆ If use the kernel changed by you,☆ If use the kernel changed by you,
☆ you will get many runtime error.☆ you will get many runtime error.☆ you will get many runtime error.☆ you will get many runtime error.☆ you will get many runtime error.
☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.
![Page 12: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/12.jpg)
Doesn't OSS have good quality?Doesn't OSS have good quality?Doesn't OSS have good quality?Doesn't OSS have good quality?Doesn't OSS have good quality?
☆ "The Cathedral and the Bazaar"☆ "The Cathedral and the Bazaar"☆ "The Cathedral and the Bazaar"☆ "The Cathedral and the Bazaar"☆ "The Cathedral and the Bazaar"
☆ "Given enough eyeballs, all bugs are shallow."☆ "Given enough eyeballs, all bugs are shallow."☆ "Given enough eyeballs, all bugs are shallow."☆ "Given enough eyeballs, all bugs are shallow."☆ "Given enough eyeballs, all bugs are shallow."http://cruel.org/freeware/cathedral.htmlhttp://cruel.org/freeware/cathedral.htmlhttp://cruel.org/freeware/cathedral.htmlhttp://cruel.org/freeware/cathedral.htmlhttp://cruel.org/freeware/cathedral.html
☆ But if you develop your own product reusing OSS...☆ But if you develop your own product reusing OSS...☆ But if you develop your own product reusing OSS...☆ But if you develop your own product reusing OSS...☆ But if you develop your own product reusing OSS...
![Page 13: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/13.jpg)
Low quality out of OSS umbrellaLow quality out of OSS umbrellaLow quality out of OSS umbrellaLow quality out of OSS umbrellaLow quality out of OSS umbrella
![Page 14: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/14.jpg)
Type safetyType safetyType safetyType safetyType safety
☆ Less runtime errors.☆ Less runtime errors.☆ Less runtime errors.☆ Less runtime errors.☆ Less runtime errors.
☆ "数理科学的バグ撲滅方法論のすすめ"☆ "数理科学的バグ撲滅方法論のすすめ"☆ "数理科学的バグ撲滅方法論のすすめ"☆ "数理科学的バグ撲滅方法論のすすめ"☆ "数理科学的バグ撲滅方法論のすすめ"http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/
![Page 15: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/15.jpg)
Kernel desperately wants typeKernel desperately wants typeKernel desperately wants typeKernel desperately wants typeKernel desperately wants type
☆ Kernels are developed with C lang.☆ Kernels are developed with C lang.☆ Kernels are developed with C lang.☆ Kernels are developed with C lang.☆ Kernels are developed with C lang.
☆ Error on user space => SEGV☆ Error on user space => SEGV☆ Error on user space => SEGV☆ Error on user space => SEGV☆ Error on user space => SEGV
☆ Error on kernel space => halt!☆ Error on kernel space => halt!☆ Error on kernel space => halt!☆ Error on kernel space => halt!☆ Error on kernel space => halt!
☆ Should design kernel with the greatest care.☆ Should design kernel with the greatest care.☆ Should design kernel with the greatest care.☆ Should design kernel with the greatest care.☆ Should design kernel with the greatest care.
☆ C language is safe?☆ C language is safe?☆ C language is safe?☆ C language is safe?☆ C language is safe?
![Page 16: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/16.jpg)
[4] What is compiler to build OS[4] What is compiler to build OS[4] What is compiler to build OS[4] What is compiler to build OS[4] What is compiler to build OS
☆ Need strong type.☆ Need strong type.☆ Need strong type.☆ Need strong type.☆ Need strong type.
☆ Need flexibility such as C language.☆ Need flexibility such as C language.☆ Need flexibility such as C language.☆ Need flexibility such as C language.☆ Need flexibility such as C language.
☆ Create it if there are not!☆ Create it if there are not!☆ Create it if there are not!☆ Create it if there are not!☆ Create it if there are not!
☆ From scratch? No thank you...☆ From scratch? No thank you...☆ From scratch? No thank you...☆ From scratch? No thank you...☆ From scratch? No thank you...
☆ Look for our compiler base.☆ Look for our compiler base.☆ Look for our compiler base.☆ Look for our compiler base.☆ Look for our compiler base.
![Page 17: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/17.jpg)
Want POSIX free compilerWant POSIX free compilerWant POSIX free compilerWant POSIX free compilerWant POSIX free compiler
Programs to print "hoge" on terminal.Programs to print "hoge" on terminal.Programs to print "hoge" on terminal.Programs to print "hoge" on terminal.Programs to print "hoge" on terminal.
Measurement value is smaller, dependence on POSIX is small.Measurement value is smaller, dependence on POSIX is small.Measurement value is smaller, dependence on POSIX is small.Measurement value is smaller, dependence on POSIX is small.Measurement value is smaller, dependence on POSIX is small.
![Page 18: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/18.jpg)
Jhc output has only 20 undefJhc output has only 20 undefJhc output has only 20 undefJhc output has only 20 undefJhc output has only 20 undef$ nm hs.out | grep "U " U _IO_putc@@GLIBC_2.2.5 U __libc_start_main@@GLIBC_2.2.5 U _setjmp@@GLIBC_2.2.5 U abort@@GLIBC_2.2.5 U ctime@@GLIBC_2.2.5 U exit@@GLIBC_2.2.5 U fflush@@GLIBC_2.2.5 U fprintf@@GLIBC_2.2.5 U fputc@@GLIBC_2.2.5 U fputs@@GLIBC_2.2.5 U free@@GLIBC_2.2.5 U fwrite@@GLIBC_2.2.5 U getenv@@GLIBC_2.2.5 U malloc@@GLIBC_2.2.5 U memset@@GLIBC_2.2.5 U posix_memalign@@GLIBC_2.2.5 U realloc@@GLIBC_2.2.5 U setlocale@@GLIBC_2.2.5 U sysconf@@GLIBC_2.2.5 U times@@GLIBC_2.2.5
$ nm hs.out | grep "U " U _IO_putc@@GLIBC_2.2.5 U __libc_start_main@@GLIBC_2.2.5 U _setjmp@@GLIBC_2.2.5 U abort@@GLIBC_2.2.5 U ctime@@GLIBC_2.2.5 U exit@@GLIBC_2.2.5 U fflush@@GLIBC_2.2.5 U fprintf@@GLIBC_2.2.5 U fputc@@GLIBC_2.2.5 U fputs@@GLIBC_2.2.5 U free@@GLIBC_2.2.5 U fwrite@@GLIBC_2.2.5 U getenv@@GLIBC_2.2.5 U malloc@@GLIBC_2.2.5 U memset@@GLIBC_2.2.5 U posix_memalign@@GLIBC_2.2.5 U realloc@@GLIBC_2.2.5 U setlocale@@GLIBC_2.2.5 U sysconf@@GLIBC_2.2.5 U times@@GLIBC_2.2.5
$ nm hs.out | grep "U " U _IO_putc@@GLIBC_2.2.5 U __libc_start_main@@GLIBC_2.2.5 U _setjmp@@GLIBC_2.2.5 U abort@@GLIBC_2.2.5 U ctime@@GLIBC_2.2.5 U exit@@GLIBC_2.2.5 U fflush@@GLIBC_2.2.5 U fprintf@@GLIBC_2.2.5 U fputc@@GLIBC_2.2.5 U fputs@@GLIBC_2.2.5 U free@@GLIBC_2.2.5 U fwrite@@GLIBC_2.2.5 U getenv@@GLIBC_2.2.5 U malloc@@GLIBC_2.2.5 U memset@@GLIBC_2.2.5 U posix_memalign@@GLIBC_2.2.5 U realloc@@GLIBC_2.2.5 U setlocale@@GLIBC_2.2.5 U sysconf@@GLIBC_2.2.5 U times@@GLIBC_2.2.5
$ nm hs.out | grep "U " U _IO_putc@@GLIBC_2.2.5 U __libc_start_main@@GLIBC_2.2.5 U _setjmp@@GLIBC_2.2.5 U abort@@GLIBC_2.2.5 U ctime@@GLIBC_2.2.5 U exit@@GLIBC_2.2.5 U fflush@@GLIBC_2.2.5 U fprintf@@GLIBC_2.2.5 U fputc@@GLIBC_2.2.5 U fputs@@GLIBC_2.2.5 U free@@GLIBC_2.2.5 U fwrite@@GLIBC_2.2.5 U getenv@@GLIBC_2.2.5 U malloc@@GLIBC_2.2.5 U memset@@GLIBC_2.2.5 U posix_memalign@@GLIBC_2.2.5 U realloc@@GLIBC_2.2.5 U setlocale@@GLIBC_2.2.5 U sysconf@@GLIBC_2.2.5 U times@@GLIBC_2.2.5
$ nm hs.out | grep "U " U _IO_putc@@GLIBC_2.2.5 U __libc_start_main@@GLIBC_2.2.5 U _setjmp@@GLIBC_2.2.5 U abort@@GLIBC_2.2.5 U ctime@@GLIBC_2.2.5 U exit@@GLIBC_2.2.5 U fflush@@GLIBC_2.2.5 U fprintf@@GLIBC_2.2.5 U fputc@@GLIBC_2.2.5 U fputs@@GLIBC_2.2.5 U free@@GLIBC_2.2.5 U fwrite@@GLIBC_2.2.5 U getenv@@GLIBC_2.2.5 U malloc@@GLIBC_2.2.5 U memset@@GLIBC_2.2.5 U posix_memalign@@GLIBC_2.2.5 U realloc@@GLIBC_2.2.5 U setlocale@@GLIBC_2.2.5 U sysconf@@GLIBC_2.2.5 U times@@GLIBC_2.2.5
![Page 19: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/19.jpg)
Jhc is translator to C languageJhc is translator to C languageJhc is translator to C languageJhc is translator to C languageJhc is translator to C language
![Page 20: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/20.jpg)
Easy to cross buildEasy to cross buildEasy to cross buildEasy to cross buildEasy to cross build
![Page 21: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/21.jpg)
Survive burning outSurvive burning outSurvive burning outSurvive burning outSurvive burning out
Let's develop in dogfooding style. (The method is called "Snatch".)Let's develop in dogfooding style. (The method is called "Snatch".)Let's develop in dogfooding style. (The method is called "Snatch".)Let's develop in dogfooding style. (The method is called "Snatch".)Let's develop in dogfooding style. (The method is called "Snatch".)
![Page 22: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/22.jpg)
[5] How to use Ajhc[5] How to use Ajhc[5] How to use Ajhc[5] How to use Ajhc[5] How to use Ajhc
Case of Ubuntu 12.04 amd64.Case of Ubuntu 12.04 amd64.Case of Ubuntu 12.04 amd64.Case of Ubuntu 12.04 amd64.Case of Ubuntu 12.04 amd64.$ sudo apt-get install haskell-platform libncurses5-dev gcc m4$ cabal update$ export PATH=$HOME/.cabal/bin/:$PATH$ cabal install ajhc$ which ajhc/home/USER/.cabal/bin/ajhc$ echo 'main = print "hoge"' > Hoge.hs$ ajhc Hoge.hs$ ./hs.out"hoge"
$ sudo apt-get install haskell-platform libncurses5-dev gcc m4$ cabal update$ export PATH=$HOME/.cabal/bin/:$PATH$ cabal install ajhc$ which ajhc/home/USER/.cabal/bin/ajhc$ echo 'main = print "hoge"' > Hoge.hs$ ajhc Hoge.hs$ ./hs.out"hoge"
$ sudo apt-get install haskell-platform libncurses5-dev gcc m4$ cabal update$ export PATH=$HOME/.cabal/bin/:$PATH$ cabal install ajhc$ which ajhc/home/USER/.cabal/bin/ajhc$ echo 'main = print "hoge"' > Hoge.hs$ ajhc Hoge.hs$ ./hs.out"hoge"
$ sudo apt-get install haskell-platform libncurses5-dev gcc m4$ cabal update$ export PATH=$HOME/.cabal/bin/:$PATH$ cabal install ajhc$ which ajhc/home/USER/.cabal/bin/ajhc$ echo 'main = print "hoge"' > Hoge.hs$ ajhc Hoge.hs$ ./hs.out"hoge"
$ sudo apt-get install haskell-platform libncurses5-dev gcc m4$ cabal update$ export PATH=$HOME/.cabal/bin/:$PATH$ cabal install ajhc$ which ajhc/home/USER/.cabal/bin/ajhc$ echo 'main = print "hoge"' > Hoge.hs$ ajhc Hoge.hs$ ./hs.out"hoge"
You can use on Windows or Mac OS X.You can use on Windows or Mac OS X.You can use on Windows or Mac OS X.You can use on Windows or Mac OS X.You can use on Windows or Mac OS X.
![Page 23: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/23.jpg)
Detail of usageDetail of usageDetail of usageDetail of usageDetail of usage
Please read "Ajhc User's Manual".Please read "Ajhc User's Manual".Please read "Ajhc User's Manual".Please read "Ajhc User's Manual".Please read "Ajhc User's Manual".
☆ ajhc.metasepi.org/manual.html☆ ajhc.metasepi.org/manual.html☆ ajhc.metasepi.org/manual.html☆ ajhc.metasepi.org/manual.html☆ ajhc.metasepi.org/manual.html
Also you can read in Japanese.Also you can read in Japanese.Also you can read in Japanese.Also you can read in Japanese.Also you can read in Japanese.
☆ ajhc.metasepi.org/manual_ja.html☆ ajhc.metasepi.org/manual_ja.html☆ ajhc.metasepi.org/manual_ja.html☆ ajhc.metasepi.org/manual_ja.html☆ ajhc.metasepi.org/manual_ja.html
![Page 24: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/24.jpg)
[6] Ajhc project overview[6] Ajhc project overview[6] Ajhc project overview[6] Ajhc project overview[6] Ajhc project overview
![Page 25: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/25.jpg)
Hackage DBHackage DBHackage DBHackage DBHackage DB
![Page 26: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/26.jpg)
User's ManualUser's ManualUser's ManualUser's ManualUser's Manual
![Page 27: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/27.jpg)
Source code hosting at githubSource code hosting at githubSource code hosting at githubSource code hosting at githubSource code hosting at github
![Page 28: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/28.jpg)
Build test on Travis CIBuild test on Travis CIBuild test on Travis CIBuild test on Travis CIBuild test on Travis CI
![Page 29: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/29.jpg)
Demo movies at youtubeDemo movies at youtubeDemo movies at youtubeDemo movies at youtubeDemo movies at youtube
![Page 30: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/30.jpg)
Demo code also at githubDemo code also at githubDemo code also at githubDemo code also at githubDemo code also at github
☆ github.com/ajhc/demo-cortex-m3☆ github.com/ajhc/demo-cortex-m3☆ github.com/ajhc/demo-cortex-m3☆ github.com/ajhc/demo-cortex-m3☆ github.com/ajhc/demo-cortex-m3
☆ github.com/ajhc/demo-android-ndk☆ github.com/ajhc/demo-android-ndk☆ github.com/ajhc/demo-android-ndk☆ github.com/ajhc/demo-android-ndk☆ github.com/ajhc/demo-android-ndk
☆ github.com/metasepi/chibios-arafura☆ github.com/metasepi/chibios-arafura☆ github.com/metasepi/chibios-arafura☆ github.com/metasepi/chibios-arafura☆ github.com/metasepi/chibios-arafura
![Page 31: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/31.jpg)
Bug tracker at githubBug tracker at githubBug tracker at githubBug tracker at githubBug tracker at github
![Page 32: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/32.jpg)
Hacking Guide Book (writing)Hacking Guide Book (writing)Hacking Guide Book (writing)Hacking Guide Book (writing)Hacking Guide Book (writing)
github.com/ajhc/ajhc-hacking-guidegithub.com/ajhc/ajhc-hacking-guidegithub.com/ajhc/ajhc-hacking-guidegithub.com/ajhc/ajhc-hacking-guidegithub.com/ajhc/ajhc-hacking-guide
![Page 33: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/33.jpg)
[7] Ajhc project status[7] Ajhc project status[7] Ajhc project status[7] Ajhc project status[7] Ajhc project status
Following functions developed by us.Following functions developed by us.Following functions developed by us.Following functions developed by us.Following functions developed by us.
☆ Install with cabal.☆ Install with cabal.☆ Install with cabal.☆ Install with cabal.☆ Install with cabal.
☆ Support compiling on Windows.☆ Support compiling on Windows.☆ Support compiling on Windows.☆ Support compiling on Windows.☆ Support compiling on Windows.
☆ GC eating low memory.☆ GC eating low memory.☆ GC eating low memory.☆ GC eating low memory.☆ GC eating low memory.
☆ Support thread.☆ Support thread.☆ Support thread.☆ Support thread.☆ Support thread.
☆ Shape reentrant.☆ Shape reentrant.☆ Shape reentrant.☆ Shape reentrant.☆ Shape reentrant.
![Page 34: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/34.jpg)
Application on bootloaderApplication on bootloaderApplication on bootloaderApplication on bootloaderApplication on bootloader
gitorious.org/metasepi/netbsd-arafuragitorious.org/metasepi/netbsd-arafuragitorious.org/metasepi/netbsd-arafuragitorious.org/metasepi/netbsd-arafuragitorious.org/metasepi/netbsd-arafura
![Page 35: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/35.jpg)
Application without OSApplication without OSApplication without OSApplication without OSApplication without OS
github.com/ajhc/demo-cortex-m3github.com/ajhc/demo-cortex-m3github.com/ajhc/demo-cortex-m3github.com/ajhc/demo-cortex-m3github.com/ajhc/demo-cortex-m3
![Page 36: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/36.jpg)
Application on tiny OSApplication on tiny OSApplication on tiny OSApplication on tiny OSApplication on tiny OS
github.com/metasepi/chibios-arafuragithub.com/metasepi/chibios-arafuragithub.com/metasepi/chibios-arafuragithub.com/metasepi/chibios-arafuragithub.com/metasepi/chibios-arafura
![Page 37: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/37.jpg)
Application on Android NDKApplication on Android NDKApplication on Android NDKApplication on Android NDKApplication on Android NDK
github.com/ajhc/demo-android-ndkgithub.com/ajhc/demo-android-ndkgithub.com/ajhc/demo-android-ndkgithub.com/ajhc/demo-android-ndkgithub.com/ajhc/demo-android-ndk
![Page 38: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/38.jpg)
What's comming next?What's comming next?What's comming next?What's comming next?What's comming next?
☆ Support more Haskell libraries.☆ Support more Haskell libraries.☆ Support more Haskell libraries.☆ Support more Haskell libraries.☆ Support more Haskell libraries.
☆ Own package manager.☆ Own package manager.☆ Own package manager.☆ Own package manager.☆ Own package manager.
☆ Implement MVar.☆ Implement MVar.☆ Implement MVar.☆ Implement MVar.☆ Implement MVar.
☆ Clang backend.☆ Clang backend.☆ Clang backend.☆ Clang backend.☆ Clang backend.
☆ Application on iOS?☆ Application on iOS?☆ Application on iOS?☆ Application on iOS?☆ Application on iOS?
☆ Benchmark.☆ Benchmark.☆ Benchmark.☆ Benchmark.☆ Benchmark.
☆ Write NetBSD driver with Ajhc.☆ Write NetBSD driver with Ajhc.☆ Write NetBSD driver with Ajhc.☆ Write NetBSD driver with Ajhc.☆ Write NetBSD driver with Ajhc.
![Page 39: Metasepi team meeting: Ajhc Project Overview](https://reader033.vdocuments.us/reader033/viewer/2022052619/5550f5d0b4c90501448b4730/html5/thumbnails/39.jpg)
PR: Call For ArticlesPR: Call For ArticlesPR: Call For ArticlesPR: Call For ArticlesPR: Call For Articles
☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/
☆ Fanzine of functional programming.☆ Fanzine of functional programming.☆ Fanzine of functional programming.☆ Fanzine of functional programming.☆ Fanzine of functional programming.
☆ About Haskell or OCaml or . . .☆ About Haskell or OCaml or . . .☆ About Haskell or OCaml or . . .☆ About Haskell or OCaml or . . .☆ About Haskell or OCaml or . . .
☆ Article about Ajhc in C84 book.☆ Article about Ajhc in C84 book.☆ Article about Ajhc in C84 book.☆ Article about Ajhc in C84 book.☆ Article about Ajhc in C84 book.
☆ Call me if you read it!☆ Call me if you read it!☆ Call me if you read it!☆ Call me if you read it!☆ Call me if you read it!http://www.paraiso-lang.org/ikmsm/books/c85.htmlhttp://www.paraiso-lang.org/ikmsm/books/c85.htmlhttp://www.paraiso-lang.org/ikmsm/books/c85.htmlhttp://www.paraiso-lang.org/ikmsm/books/c85.htmlhttp://www.paraiso-lang.org/ikmsm/books/c85.html