オープンソースCMS「DotNetNuke」のセットアップ
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Werner Schuster , 翻訳者 編集部 投稿日 2008年10月25日
LLVMには「VM」という文字が含まれているが、実際にはコンパイラバックエンドを構築するためのフレームワークである。要するに、命令セット(即座に 表示)およびコードを最適化し、多くのプラットフォーム(x86、ARMなど...)向けのネイティブコードを生成するバックエンドを装備している。現実 世界での使用例の1つは、AppleのOpenGL JIT(リンク)である。
Llvmruby(リンク)(llvmruby GitHubリポジトリ)(リンク)はTom Bagby氏によるプロジェクトである。RubyバインディングをLLVMに提供する。Llvmrubyは、適切にRubyに統合される。たとえば、このコードは追加命令を追加する(codeblockは命令のビルダーである)。
codeblock.bin_op(Instruction::Add, 41.llvm, 1.llvm)
LlvmrubyはObjectを開き、llvmを追加し、LLVMが取り扱うことができる値に変換する。
READMEのインストラクションに従えば(LLVMを取得し、コンパイルし、llvmrubyをコンパイルする)、たとえばirbを使った試みを始めら れる。以下にサンプルセッションを示す(llvmrubyプロジェクトのサンプルから抽出したコードのスニペットつき)。
# Set up LLVM
>> require 'llvm'
=> true
>> include LLVM
=> Object
>> m = LLVM::Module.new("test_module")
=> ; ModuleID = 'test_module'
# Create a function type - the second argument is the method signature,
# ie. the return type and the types of the arguments
# In this case, there are no return values or arguments
>> type = Type::function(MACHINE_WORD, [])
=> #
>> f = m.get_or_insert_function("test", type)
=>
declare i32 @test()
# Create an LLVMBuilder object which allows to call methods and
# generate instructions
>> builder = f.create_block.builder
=> #
# Create an Add instruction - note how it's possible to pass regular Ruby Fixnums
>> ret = builder.bin_op(Instruction::Add, 41.llvm, 1.llvm)
=> #
>> fcode = builder.return(ret)
=> #
>> ExecutionEngine.get(m);
=> true
# Finally: execute the generated code
>> ExecutionEngine.run_autoconvert(f)
=> 42
LLVMの使用について詳しくは、LLVM Tutorialが単純な言語など向けのJITの実装方法を示している(リンク)。
llvmrubyを使用したさらに規模の大きな例をMiura Hideki氏(リンク)が提供している。
Llvmrubyは、C++に関わることなくLLVMでの試みを可能にし、またirbを使用し漸進的におこなうことを可能にする。A useful property, eg. 便利なプロパティ、Rubiniusへのコントリビューターが考えのプロトタイプを製造する(プロジェクトはLLVMを使用する計画)。Rubinius チームは、C++でVMを再書き込みし、内部のクリーンアップで忙しくしている。この作業は、現在GitリポジトリのRubiniusのCPPブランチで おこなわれており、外部ライブラリとしてLLVMを含む(リンク)。C++ブランチは、まもなくマスターブランチに変化する。最近のTwittersによると、 Rubiniusは新たなC++ VMで多くのRubyコードを実行する機能を回復した。. Eric Hodel氏が今週、以下のように述べた(リンク)。
Rubiniusの新たなvmは、クラッシュすることなくコアスペックを実行することができる。
Evan Phoenix氏は、以下のように報告した(リンク)。
IRBは再び新たなRubinius C++ VMの下、動作する。
RubyでLLVMをどう使用するか?
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
DotNetNukeは、Windows Serverで動作するCMS(Contents Management System)である。この記事ではWeb Platform Installer を利用して人気CMS「DotNetNuke」と無償Web開発環境「WebMatrix」のインストールする方法を紹介する。
クラウドコンピューティングを前提とした大規模データ技術が利用可能となってきています。Big Dataが一過性のブームで終わるかどうかにかかわらず、スケーラブルな分散アーキテクチャーの基盤はデータベース技術に主導されつつあります。RDBとORM主体のエンタープライズシステムは、HadoopやNoSQLとの組み合わせにより複合的なデータモデルに発展しました。
2011年12月8日~2011年12月9日に、ロンドンのSkills Matter eXchangeにて開催された「Groovy & Grails eXchange 2011」の参加報告を、日本Grails/Groovyユーザーグループのメンバーが3回に渡って紹介します。
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続���開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
No comments
スレッド表示 返信