From afc@aber.ac.uk Tue May 6 12:19:53 2003 From: afc@aber.ac.uk (Amanda Clare) Date: Tue, 06 May 2003 12:19:53 +0100 Subject: [C2hs] swig Message-ID: <3EB79A59.8080105@aber.ac.uk> Are there any future plans to go with the SWIG group http://www.swig.org/ for interfacing with C code? They claim to support Perl, Python, Tcl/Tk, Ruby, Guile, MzScheme, Java, OCAML, CHICKEN, and C#, and as I've understood, you just run something like "swig -python" on your header file to create everything you need to interface C to Python. At the moment, I'd like to generate Haskell access to all the functions and enums defined in the Oracle database C library libsqlora8 http://www.poitschke.de/libsqlora8/. Something like SWIG sounds ideal for that. C2hs looks good. But somehow, if I do it in c2hs I have to read and understand all about the ffi, stable pointers and foreign pointers etc. Is the problem just too complicated in Haskell to automate completely? Amanda From v163@163.com Tue May 6 20:37:06 2003 From: v163@163.com (v163@163.com) Date: Wed, 7 May 2003 03:37:06 +0800 Subject: [C2hs] (no subject) Message-ID: <20030506193622.97B1A421EEB@www.haskell.org>
From jens@juhp.dyndns.org Wed May 7 01:33:10 2003 From: jens@juhp.dyndns.org (Jens Petersen) Date: 07 May 2003 09:33:10 +0900 Subject: [C2hs] swig In-Reply-To: <3EB79A59.8080105@aber.ac.uk> References: <3EB79A59.8080105@aber.ac.uk> Message-ID: <1052267590.1146.37.camel@smile.house> 2003年05月06日(火)の20時19分に Amanda Clare 曰く: > At the moment, I'd like to generate Haskell access to all the functions > and enums defined in the Oracle database C library libsqlora8 > http://www.poitschke.de/libsqlora8/. > Something like SWIG sounds ideal for that. C2hs looks good. But somehow, > if I do it in c2hs I have to read and understand all about the ffi, > stable pointers and foreign pointers etc. Is the problem just too > complicated in Haskell to automate completely? Interesting question, since for a while I've been dreaming about c2hs being able to do bindings automatically. Jens From chak@cse.unsw.edu.au Thu May 8 08:52:33 2003 From: chak@cse.unsw.edu.au (Manuel M T Chakravarty) Date: Thu, 08 May 2003 17:52:33 +1000 (EST) Subject: [C2hs] swig In-Reply-To: <3EB79A59.8080105@aber.ac.uk> References: <3EB79A59.8080105@aber.ac.uk> Message-ID: <20030508.175233.185252243.chak@cse.unsw.edu.au> Amanda Clare wrote, > Are there any future plans to go with the SWIG group > http://www.swig.org/ for interfacing with C code? They claim to support > Perl, Python, Tcl/Tk, Ruby, Guile, MzScheme, Java, OCAML, CHICKEN, and > C#, and as I've understood, you just run something like "swig -python" > on your header file to create everything you need to interface C to Python. > > At the moment, I'd like to generate Haskell access to all the functions > and enums defined in the Oracle database C library libsqlora8 > http://www.poitschke.de/libsqlora8/. > Something like SWIG sounds ideal for that. C2hs looks good. But somehow, > if I do it in c2hs I have to read and understand all about the ffi, > stable pointers and foreign pointers etc. Is the problem just too > complicated in Haskell to automate completely? The short answer is "yes." The c2hs paper says the following about SWIG: SWIG works well for untyped scripting languages, such as Tcl, Python, Perl, and Scheme, or C-like languages, such as Java, but the problem with typed functional languages is that the information in the C header file is usually not sufficient for determining the interface on the functional-language side. As a result, additional information has to be included into the C header file, which leads to maintenance overhead when new versions of an interfaced C library appear. This is in contrast to the use of pristine C header files complemented by a separate high-level interface specification as favoured in C->Haskell. I have to admit that I didn't have a look at how SWIG handles OCaml (it didn't have that support at the time the paper was written), though. To illustrate the quoted text a bit, consider for example that many C programs just use values of type `int' to represent a Boolean value. They may then go on to include #define TRUE -1 #define FALSE 0 to make the code a bit more readable. Using `Int' for Booleans is clearly not acceptable in Haskell, but presented with a prototype of the form int foo (int x); should the Haskell signature be foo :: Int -> Int , foo :: Bool -> Int , foo :: Int -> Bool , or foo :: Bool -> Bool ? As a consequence, the design of a Haskell API for a C library requires an understanding of the *semantics* of the involved types and functions. Hence, it requires human intervention. Consequently, tool support can follow any of two routes: (1) Automatically generate a raw and ugly interface from the C header file (which, in particular, maps all use of a C `int' to a Haskell `Int', independent of whether that `int' represents a Boolean value). Then, write a normal Haskell module that exports a nice Haskell-ised API and implements it by calling the functions from the raw and ugly interface. I call this additional code "impedance matching code." (2) Use the C header together with some extra information that describes the mapping of C types to Haskell types to directly generate a nice Haskell-ised API. SWIG follows Route (1); although, it permits to annotate C headers to get some of the benefits of Route (2).[1] C->Haskell follows Route (2). The extra information is exactly what is contained in the binding modules. I prefer this route as it leaves scope for generating some of the repetitive patterns in the impedance matching code automatically, hence, leading to less overall effort. The main advantage of Route (1) is that it facilitates to generate a raw and ugly interface really quickly and, if you don't care to making a proper Haskell library out of it, allows you to code your application directly on that raw interface. In other words, it reduces the barrier to entry, even if it increases the overall effort. Consequently, I am very interested in reducing the barrier to entry to work with c2hs. To do so, I have writing a tutorial on my list for a quite a while - I just never seem to get the time to actually do it :-/ In addition, it might be worthwhile to extend the existing function hooks http://www.cse.unsw.edu.au/~chak/haskell/c2hs/docu/c2hs-3.html#ss3.7 such that supplying a Haskell type is optional and there is a default mapping to Haskell for every C type. The result would be a function binding like that SWIG would generate. Cheers, Manuel [1] IMHO annotating C headers is a big no-no. You want to work from prestine headers to simplify tracking of successive versions of the C library. From byron.hale@einfo.com Fri May 9 17:22:12 2003 From: byron.hale@einfo.com (Byron Hale) Date: Fri, 09 May 2003 09:22:12 -0700 Subject: [C2hs] Fwd: [Caml-list] Announce - ODLL Release Message-ID: <5.2.0.9.2.20030509092017.00b5d048@einfo.com> Speaking of SWIG, take a look at ODLL. Best Regards, Byron Hasle byron.hale@einfo.com >X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to >owner-caml-list@pauillac.inria.fr using -f >From: "Nicolas Cannasse" >To: "OCaml" >Subject: [Caml-list] Announce - ODLL Release >Date: Thu, 8 May 2003 20:50:04 +0900 >X-Mailer: Microsoft Outlook Express 6.00.2800.1106 >X-Spam: no; 0.00; cannasse:01 warplayer:01 librairies:01 motion-twin:01 >cmxa:01 ocaml:01 nicolas:01 stubs:01 interfaces:01 consortium:01 cma:03 >dll:03 lexifi:03 interface:03 library:03 >Sender: owner-caml-list@pauillac.inria.fr > >Hi list ! > >I'm please to announce the first release of ODLL. > >If you're having a boss asking you to write C librairies but if you prefer >to write them in OCaml, this tool is for you ! ODLL is creating a Win32 DLL >from an OCaml library, and automatically generating the C stubs needed to >interface the OCaml code and the C code and the .H interface. Simply run >ODLL with you CMA/CMXA and one or several CMI interfaces and ODLL >will do the job for you. > >The distribution is available at http://tech.motion-twin.com >Comments/suggestions are welcome, > >Thanks to Lexifi - member of the Ocaml consortium - for their support in >this project. > >Nicolas Cannasse > >------------------- >To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr >Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ >Beginner's list: http://groups.yahoo.com/group/ocaml_beginners From v163@163.com Fri May 9 22:08:04 2003 From: v163@163.com (v163@163.com) Date: Sat, 10 May 2003 05:08:04 +0800 Subject: [C2hs] =?GB2312?B?UkWjug==?= Message-ID: <20030509210711.AAED6421EFD@www.haskell.org> New Page 2 <body> <p>ҳʹ˿ܣֿ֧ܡ</p> </body> From ywt@yiwutong.com Sat May 10 04:25:38 2003 From: ywt@yiwutong.com (=?GB2312?B?0r3O8c2o?=) Date: Sat, 10 May 2003 11:25:38 +0800 Subject: [C2hs] =?GB2312?B?t8ezo8qxxtqjrNK9zvHNqNPrxPq5ss2stsm5/aOho6GjoQ==?= Message-ID: <20030510032700.C73E5421EFB@www.haskell.org> װѣã Ĵ죬︴գһ̵սdzʱڣĵףԸļ˽ƽ 𾴵ҽͨûҲ˾ԱҲм˻սڷǵһߣðűȾķգĬĬԼְ𣬼Σյǰأǽǵĸлߵľ⣬ٴףذˣƽ ճУרҵĽ飬עϢӪǿȥ˶ĵطҽͨվȫ幤ԱΪṩʵķΪΡǵĹְҲǶϵֺ֧ͱ dzʱڣǹͬɹ ҽͨվ 20035 ӭʣ www.yiwutomng.com From test@test.com Sun May 11 14:33:16 2003 From: test@test.com (=?GB2312?B?sLLGvcjtvP5odHRwOi8vd3d3LmFucGluZ3NvZnQuY29tLw==?=) Date: Sun, 11 May 2003 21:33:16 +0800 Subject: [C2hs] =?GB2312?B?x+stxPotytQt08OjurCyLca9LbLWLbncLc31LcjtLbz+OjQwMC4wMCDUqg==?= Message-ID: <20030511133354.716F6421EFC@www.haskell.org> ƽֹרҵֿã׿Խ

籾Ϣɲ㣬½⣡ɾһ£ллҵ֧֣

                        ƽֹ V7.6

                  ֵ֧//Զ

            ƽֹרҵֿã׿Խ

    ҵλԲֿճʵּܻӦ ܴƷ ɹۡװжһֿ⹤ͳƱܣIJֿ硣Ȩ޹ܣΪͬûòͬȨޡƼ۲ƶȨ
                  
ʾ         վ   
߿

   ˾߿ҵǵͨҪӦϵͳĻϽжοݹȡֿáҪֱӽͨ绰ʼǣ֤ҪǽŻݵļ۸ΪõIJƷ

    ӭѯע⣮벻Ҫ͸ʱʼ޷յţ 绰ѯ

ƽ 

    ϵˣ    绰0536-2909116   QQ:5056114   

From v163@163.com Mon May 12 00:42:58 2003 From: v163@163.com (v163@163.com) Date: Mon, 12 May 2003 07:42:58 +0800 Subject: [C2hs] c2hs Message-ID: <20030511234154.0A513421F0D@www.haskell.org> Ҫҳҵ http://www.creatonly.com/sohusms.htm From notebook81@163.com Wed May 14 05:41:37 2003 From: notebook81@163.com (=?GB2312?B?0r3O8c2o?=) Date: Wed, 14 May 2003 12:41:37 +0800 Subject: [C2hs] =?GB2312?B?xsDC26O6v7m3x7Xk1tCzwcSstcTIy8rHy62jvw==?= Message-ID: <20030514044302.090A1421EFB@www.haskell.org> ҽѧ۾ WWW.YIWUTONG.COM http://www.yiwutong.com/yxpl/yxpl.asp From =?ks_c_5601-1987?B?xfW+7sDOvbQ=?=" This is a multi-part message in MIME format. ------=_NextPart_000_0011_0EDB7DF2.3DE92750 Content-Type: text/plain; charset="ks_c_5601-1987" Content-Transfer-Encoding: base64 uavBpiC5rrytICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogursguN7A z8C6IMGkurjF673Fus4gscew7SC758fXv6EgwMewxSDBprjxv6EgW7GksO1dtvMgx6W9w7XIILGk sO0guN7Az8DUtM+02S4NCiC89r3FsMW6zrimIL/4x8+9w7jpIMDMsPcgIMC7IMWsuK/H2CDB1r3D seIgudm2+LTPtNkuDQogursguN7Az8C6ILnfvcXA/L/rILjewM/AzLnHt84gursguN7Az7fOIMi4 vcXHz73HILDmv+wgtOS6ryC1x8H2IL7KwLi45ywNCiC43sDPsPy3wyC5rsDHu+fH18C6d2VibWFz dGVyQHRvdXJpbnN1LmNvbSAgwLi3ziC43sDPIMHWvcOx4iC52bb4tM+02S4NCiAgDQogICAgICAg IA== ------=_NextPart_000_0011_0EDB7DF2.3DE92750 Content-Type: text/html; charset="ks_c_5601-1987" Content-Transfer-Encoding: base64 PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs Ly9FTiI+DQo8aHRtbD4NCjxoZWFkPg0KPHRpdGxlPrmrwaYgua68rTwvdGl0bGU+DQo8bWV0YSBo dHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1ldWMt a3IiPg0KPGxpbmsgaHJlZj0iaHR0cDovL3d3dy50b3VyaW5zdS5jb20vc3R5bGUuY3NzIiByZWw9 InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4NCjwvaGVhZD4NCg0KPGJvZHkgbGVmdG1hcmdp bj0iMCIgdG9wbWFyZ2luPSIwIiBtYXJnaW53aWR0aD0iMCIgbWFyZ2luaGVpZ2h0PSIwIj4NCjx0 YWJsZSB3aWR0aD0iNDAlIiBoZWlnaHQ9IjI3MSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIg Y2VsbHNwYWNpbmc9IjAiPg0KICA8dHI+IA0KICAgIDx0ZD48aW1nIHNyYz0iaHR0cDovL3d3dy50 b3VyaW5zdS5jb20vVW50aXRsZWQtMi9pbWdfMS5qcGciIHdpZHRoPSIzMDkiIGhlaWdodD0iMTY0 IiBib3JkZXI9IjAiIHVzZW1hcD0iI01hcDIiPjwvdGQ+DQogICAgPHRkPjxpbWcgc3JjPSJodHRw Oi8vd3d3LnRvdXJpbnN1LmNvbS9VbnRpdGxlZC0yL2ltZ18yLmpwZyIgd2lkdGg9IjI5MSIgaGVp Z2h0PSIxNjQiIGJvcmRlcj0iMCIgdXNlbWFwPSIjTWFwIj48L3RkPg0KICA8L3RyPg0KICA8dHI+ IA0KICAgIDx0ZD48aW1nIHNyYz0iaHR0cDovL3d3dy50b3VyaW5zdS5jb20vVW50aXRsZWQtMi9p bWdfMy5qcGciIHdpZHRoPSIzMDkiIGhlaWdodD0iMTQxIj48L3RkPg0KICAgIDx0ZD48aW1nIHNy Yz0iaHR0cDovL3d3dy50b3VyaW5zdS5jb20vVW50aXRsZWQtMi9pbWdfNC5qcGciIHdpZHRoPSIy OTEiIGhlaWdodD0iMTQxIj48L3RkPg0KICA8L3RyPg0KICA8dHI+IA0KICAgIDx0ZD48aW1nIHNy Yz0iaHR0cDovL3d3dy50b3VyaW5zdS5jb20vVW50aXRsZWQtMi9pbWdfMTcuanBnIiB3aWR0aD0i MzA5IiBoZWlnaHQ9IjEwNCI+PC90ZD4NCiAgICA8dGQ+PGltZyBzcmM9Imh0dHA6Ly93d3cudG91 cmluc3UuY29tL1VudGl0bGVkLTIvaW1nXzE4LmpwZyIgd2lkdGg9IjI5MSIgaGVpZ2h0PSIxMDQi PjwvdGQ+DQogIDwvdHI+DQogIDx0cj4gDQogICAgPHRkPjxpbWcgc3JjPSJodHRwOi8vd3d3LnRv dXJpbnN1LmNvbS9VbnRpdGxlZC0yL2ltZ183LmpwZyIgd2lkdGg9IjMwOSIgaGVpZ2h0PSIxNjAi PjwvdGQ+DQogICAgPHRkPjxpbWcgc3JjPSJodHRwOi8vd3d3LnRvdXJpbnN1LmNvbS9VbnRpdGxl ZC0yL2ltZ184LmpwZyIgd2lkdGg9IjI5MSIgaGVpZ2h0PSIxNjAiIGJvcmRlcj0iMCIgdXNlbWFw PSIjTWFwMyI+PC90ZD4NCiAgPC90cj4NCiAgPHRyPiANCiAgICA8dGQ+PGltZyBzcmM9Imh0dHA6 Ly93d3cudG91cmluc3UuY29tL1VudGl0bGVkLTIvaW1nXzE5LmpwZyIgd2lkdGg9IjMwOSIgaGVp Z2h0PSI4NiI+PC90ZD4NCiAgICA8dGQ+PGltZyBzcmM9Imh0dHA6Ly93d3cudG91cmluc3UuY29t L1VudGl0bGVkLTIvaW1nXzIwLmpwZyIgd2lkdGg9IjI5MSIgaGVpZ2h0PSI4NiI+PC90ZD4NCiAg PC90cj4NCiAgPHRyPiANCiAgICA8dGQgY29sc3Bhbj0iMiI+PHRhYmxlIHdpZHRoPSI3NSUiIGJv cmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4NCiAgICAgICAgPHRyPg0K ICAgICAgICAgIDx0ZD48YSBocmVmPSJodHRwOi8vd3d3LnRvdXJpbnN1LmNvbS9uZXcvaW5saW5l X2Zvcm0uYXNwIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHA6Ly93d3cudG91cmluc3Uu Y29tL1VudGl0bGVkLTIvaW1nXzIxLmpwZyIgd2lkdGg9IjE2MSIgaGVpZ2h0PSI0NyIgYm9yZGVy PSIwIj48L2E+PC90ZD4NCiAgICAgICAgICA8dGQ+PGEgaHJlZj0iaHR0cDovL3d3dy50b3VyaW5z dS5jb20vJUI5JUFCJUI5JUU4JUI0JUU3JTIwJUJFJUNCJUI2JUYzJUI1JUYyJUMxJUJFJUM3JUQ1 JUJBJUI4JUM3JUU4LnppcCI+PGltZyBzcmM9Imh0dHA6Ly93d3cudG91cmluc3UuY29tL1VudGl0 bGVkLTIvaW1nXzIyLmpwZyIgd2lkdGg9IjE0OCIgaGVpZ2h0PSI0NyIgYm9yZGVyPSIwIj48L2E+ PC90ZD4NCiAgICAgICAgICA8dGQ+PGEgaHJlZj0iaHR0cDovL3d3dy50b3VyaW5zdS5jb20vYm9h cmRfcW5hL3FuYV9pbmxpbmUuYXNwIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHA6Ly93 d3cudG91cmluc3UuY29tL1VudGl0bGVkLTIvaW1nXzIzLmpwZyIgd2lkdGg9IjEzNiIgaGVpZ2h0 PSI0NyIgYm9yZGVyPSIwIj48L2E+PC90ZD4NCiAgICAgICAgICA8dGQ+PGEgaHJlZj0iaHR0cDov L3d3dy50b3VyaW5zdS5jb20vYm9hcmRfZmFxL2ZhcV9pbmxpbmUuYXNwIiB0YXJnZXQ9Il9ibGFu ayI+PGltZyBzcmM9Imh0dHA6Ly93d3cudG91cmluc3UuY29tL1VudGl0bGVkLTIvaW1nXzI0Lmpw ZyIgd2lkdGg9IjE1NSIgaGVpZ2h0PSI0NyIgYm9yZGVyPSIwIj48L2E+PC90ZD4NCiAgICAgICAg PC90cj4NCiAgICAgIDwvdGFibGU+PC90ZD4NCiAgPC90cj4NCiAgPHRyPiANCiAgICA8dGQ+PGlt ZyBzcmM9Imh0dHA6Ly93d3cudG91cmluc3UuY29tL1VudGl0bGVkLTIvaW1nXzExLmpwZyIgd2lk dGg9IjMwOSIgaGVpZ2h0PSIxNDgiPjwvdGQ+DQogICAgPHRkPjxpbWcgc3JjPSJodHRwOi8vd3d3 LnRvdXJpbnN1LmNvbS9VbnRpdGxlZC0yL2ltZ18xMi5qcGciIHdpZHRoPSIyOTEiIGhlaWdodD0i MTQ4IiBib3JkZXI9IjAiIHVzZW1hcD0iI01hcDQiPjwvdGQ+DQogIDwvdHI+DQogIDx0cj4gDQog ICAgPHRkIGNvbHNwYW49IjIiPjxpbWcgc3JjPSJodHRwOi8vd3d3LnRvdXJpbnN1LmNvbS9VbnRp dGxlZC0yL2ltZ18xMy5qcGciIHdpZHRoPSI2MDAiIGhlaWdodD0iNTQiIGJvcmRlcj0iMCIgdXNl bWFwPSIjTWFwNSI+PC90ZD4NCiAgPC90cj4NCjwvdGFibGU+DQo8dGFibGUgd2lkdGg9IjYwMCIg aGVpZ2h0PSIzMCIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiPg0K ICA8dHI+DQogICAgPHRkIGJnY29sb3I9IiMwMDMzNjYiPg0KPHAgYWxpZ249ImNlbnRlciI+PGJy Pg0KICAgICAgICA8Zm9udCBjb2xvcj0iIzk5OTk5OSI+ursguN7Az8C6IMGkurjF673Fus4gscew 7SC758fXv6EgwMewxSDBprjxv6EgW7GksO1dtvMgx6W9w7XIILGksO0guN7Az8DUtM+02S48YnI+ DQogICAgICAgILz2vcWwxbrOuKYgv/jHz73DuOkgPC9mb250PjxhIGhyZWY9Imh0dHA6Ly93d3cu Y3J1c2FkZS5jby5rci9yZWplY3QvcmVqZWN0LnBocD9pZD0yMjIxJm1vZGU9d3JpdGUmbWFpbD1j MmhzQGhhc2tlbGwub3JnIj48Zm9udCBjb2xvcj0iI0ZGQ0MwMCI+wMyw9zwvZm9udD48L2E+PGZv bnQgY29sb3I9IiM5OTk5OTkiPiANCiAgICAgICAgwLsgxay4r8fYIMHWvcOx4iC52bb4tM+02S48 YnI+DQogICAgICAgILq7ILjewM/AuiC5373FwPy/6yC43sDPwMy5x7fOILq7ILjewM+3ziDIuL3F x8+9xyCw5r/sILTkuq8gtcfB9iC+ysC4uOcsPC9mb250Pjxicj4NCiAgICAgICAgPGZvbnQgY29s b3I9IiM5OTk5OTkiPrjewM+w/LfDILmuwMe758fXwLo8L2ZvbnQ+PGEgaHJlZj0ibWFpbHRvOndl Ym1hc3RlckB0b3VyaW5zdS5jb20iPjxmb250IGNvbG9yPSIjRkZDQzAwIj53ZWJtYXN0ZXJAdG91 cmluc3UuY29tIA0KICAgICAgICA8L2ZvbnQ+PC9hPjxmb250IGNvbG9yPSIjOTk5OTk5Ij7AuLfO ILjewM8gwda9w7HiILnZtvi0z7TZLjwvZm9udD48YnI+DQogICAgICAgIDwvc3Bhbj4NCiAgICAg ICAgPC9mb250PjwvcD48L3RkPg0KICA8L3RyPg0KPC90YWJsZT4NCg0KPG1hcCBuYW1lPSJNYXAi Pg0KICA8YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIxMTMsOSwyMjAsMjQiIGhyZWY9Imh0dHA6 Ly93d3cudG91cmluc3UuY29tIiB0YXJnZXQ9Il9ibGFuayI+DQogIDxhcmVhIHNoYXBlPSJyZWN0 IiBjb29yZHM9IjExMywyNSwyNjcsMzkiIGhyZWY9Im1haWx0bzp3ZWJtYXN0ZXJAdG91cmluc3Uu Y28ua3IiPg0KPC9tYXA+DQo8bWFwIG5hbWU9Ik1hcDIiPg0KICA8YXJlYSBzaGFwZT0icmVjdCIg Y29vcmRzPSI0LDIsMTU0LDM1IiBocmVmPSJodHRwOi8vd3d3LnRvdXJpbnN1LmNvbSIgdGFyZ2V0 PSJfYmxhbmsiPg0KPC9tYXA+DQo8bWFwIG5hbWU9Ik1hcDMiPg0KICA8YXJlYSBzaGFwZT0icmVj dCIgY29vcmRzPSIxNjIsMzEsMjc2LDQzIiBocmVmPSJodHRwOi8vd3d3LnRvdXJpbnN1LmNvbSIg dGFyZ2V0PSJfYmxhbmsiPg0KPC9tYXA+DQo8bWFwIG5hbWU9Ik1hcDQiPg0KICA8YXJlYSBzaGFw ZT0icmVjdCIgY29vcmRzPSIxNjAsMzMsMjc4LDQ2IiBocmVmPSJodHRwOi8vd3d3LnRvdXJpbnN1 LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPg0KICA8YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIxMDIs MTIzLDI2NSwxNDAiIGhyZWY9Im1haWx0bzp3ZWJtYXN0ZXJAdG91cmluc3UuY29tIj4NCjwvbWFw Pg0KPG1hcCBuYW1lPSJNYXA1Ij4NCiAgPGFyZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0iMzgzLDM2 LDUxNiw1MiIgaHJlZj0ibWFpbHRvOndlYm1hc3RlckB0b3VyaW5zdS5jb20iPg0KPC9tYXA+DQo8 L2JvZHk+DQo8L2h0bWw+DQo= ------=_NextPart_000_0011_0EDB7DF2.3DE92750-- From ywt@yiwutong.com Wed May 28 03:40:16 2003 From: ywt@yiwutong.com (=?GB2312?B?0r3O8c2o?=) Date: Wed, 28 May 2003 10:40:16 +0800 Subject: [C2hs] =?GB2312?B?v7m3x7Xk1tCzwcSstcTIy8rHy62jv6O/o78=?= Message-ID: <20030528024149.11CED421EFB@www.haskell.org> ҽѧ۾ http://www.yiwutong.com/yxpl/yxpl.asp ¶˷θǣ һ޶ҽѧ www.yiwutong.com From ywt@yiwutong.com Thu May 29 05:04:15 2003 From: ywt@yiwutong.com (=?GB2312?B?0r3O8c2o?=) Date: Thu, 29 May 2003 12:04:15 +0800 Subject: [C2hs] =?GB2312?B?v7m3x7Xk1tCzwcSstcTIy8rHy62jv6O/o78=?= Message-ID: <20030529040547.433CE421EFB@www.haskell.org> ҽѧ۾ http://www.yiwutong.com/yxpl/yxpl.asp ¶˷θǣ һ޶ҽѧ www.yiwutong.com From art_maker@so-net.net.tw Thu May 29 20:32:44 2003 From: art_maker@so-net.net.tw (ְT!) Date: Fri, 30 May 2003 03:32:44 +0800 Subject: [C2hs] DVḐC~ Message-ID: <200305291932.h4TJWi032641@dns.a-maker.com>
  ޥP 0526
iޡjۤ_AKO|ӽШö}lUȪA..
{b[J|iAɨ95uf
ֻPp

 
ֻPp  
iew^en_ɥXȡASQ챡q{ܸ`ɭPȥѡAewOD_x}TCawb_ƾD`A]hìOewDDPf{AOw_qxjN (Zao)A@洫ewHCۥ_iewQ^MI6Hܸ`oWAMP^걡CҩۤvMաAew@qBBjڦA^^A@lܽլdAoo{ƥIᦳj㷴ʳѡA@^NȧAݮɶwҳѵLh...

 
638  S588  
s~PA

 

s~PA  

PAjOWsiɺtͤǤ媺qvBk@AѲаʧ@PsAftCKe쩳OַdHfég֪ܥpLtXCosbiPAjH楴WBߤ@kDAOyvgj}ɥUnܶ@ѡAȬؤHPvgUn@A]AצLұq\ҳ߼@ʧ@߼@AusqvvW@檺Amwoy֩wC@ȭno}G٭ndAsʧ@PsnJhߤON@R@P~s@CܩbvqTϪC֦~ég֪ܥO}ʪtX@ӤڪǮaoJ߷PQs

798  S698  

~Vuʺq~

 

 

~Vuʺq~  

         piTtkDuTvFM˥ͤ ˡAMǨmUAѩ󩯹BUA[TKMLܤͪB͡AӺغظH]tܵۡA˥iNOTͤCOATRWsPǦîɡARBoc@ˤFLIʱHä~OLPff..........

         RPRBԧɡA@TѲFAhOЪTAb˪wƤUAӻ~HTwgL@MáAbۤ߫UAשbƷ~פαBCoɡAMT@Ҥ@˪AoM.........


2500  S1980
YQohӫ~TЦhttp://tw.a-maker.com
AȫHc @AȱMuG(02)27735168
From v163@163.com Thu May 29 20:51:30 2003 From: v163@163.com (v163@163.com) Date: Fri, 30 May 2003 03:51:30 +0800 Subject: [C2hs] c2hs@haskell.org Message-ID: <20030529194849.CC1B6421EEB@www.haskell.org> From v163@163.com Fri May 30 17:49:59 2003 From: v163@163.com (v163@163.com) Date: Sat, 31 May 2003 00:49:59 +0800 Subject: [C2hs] c2hs@haskell.org Message-ID: <20030530164754.DFF1C421EEB@www.haskell.org>