From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 4FFABBB81 for ; Sat, 19 Nov 2005 21:50:44 +0100 (CET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id jAJKohvD025448 for ; Sat, 19 Nov 2005 21:50:43 +0100 Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id VAA15596 for ; Sat, 19 Nov 2005 21:50:43 +0100 (MET) Received: from wproxy.gmail.com (wproxy.gmail.com [64.233.184.203]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id jAJKogHn024935 for ; Sat, 19 Nov 2005 21:50:42 +0100 Received: by wproxy.gmail.com with SMTP id i32so214681wra for ; Sat, 19 Nov 2005 12:50:41 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=cyhsA4JDEyRWFqk45QC/pg1aDq4fykVt4WHWLuS+8Q8m2oNB92lCXiIU7YEyuqkLRnDyw0ZLhsO2343+YZK2j3arKwwaA4isGLmDZlLTY37G47JNzFJLLw71bKIYrriwZT1WmM+DUHgOYiwu7heVsjSh4mhKVirA85q9It0VoFQ= Received: by 10.65.197.4 with SMTP id z4mr1254816qbp; Sat, 19 Nov 2005 12:50:41 -0800 (PST) Received: by 10.64.10.5 with HTTP; Sat, 19 Nov 2005 12:50:41 -0800 (PST) Message-ID: Date: Sun, 20 Nov 2005 09:50:41 +1300 From: Jonathan Roewen To: skaller Subject: Re: Yet another OCaml Webserver?! (was: Re: [Caml-list] Yet another sudoku solver (838 bytes)) Cc: Oliver Bandel , caml-list@inria.fr In-Reply-To: <1132432363.21230.54.camel@rosella> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline References: <20051119150931.GB324@first.in-berlin.de> <20051119201905.GA1549@first.in-berlin.de> <1132432363.21230.54.camel@rosella> X-Miltered: at concorde with ID 437F9023.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at nez-perce with ID 437F9022.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; ocaml:01 caml-list:01 solver:01 bytecode:01 asmdynlink:01 bytecode:01 ocamlopt:01 syscalls:01 dynlink:01 ocaml:01 bigarray:01 838:98 pci:98 imho:01 ideally:01 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.9 required=5.0 tests=PLING_QUERY,RCVD_BY_IP autolearn=disabled version=3.0.3 > > Why using bytecode? > > Because it's an OS .. dynamic loading is mandatory. This is indeed the reason =3D) Asmdynlink I read was slower than the bytecode interpreter itself; another reason not to use ocamlopt. >> But: if the kernel is less used and the main time the >> program is in usermode (not kernel mode), then the >> speed of the kernel is not sooooo much a big problem. Apps are dynlink'd into the kernel. There is no user-space. No syscalls -- use direct function calls. Dynlink will ensure apps/drivers only access necessary modules. >> well... IMHO graphic card drivers is not ideally done >> in OCaml, and not in C... at least certain parts would >> necessaryly be coded in Assembler... Generally, drivers only need port IO and/or memory IO. Port IO is easy (and is already done ... though resource allocation isn't), and Memory IO could probably be done with the Bigarray module (PCI bus knows what the range is). Jonathan