From dev-return-8185-archive-asf-public=cust-asf.ponee.io@mxnet.apache.org Tue Oct 6 12:51:38 2020 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mxout1-ec2-va.apache.org (mxout1-ec2-va.apache.org [3.227.148.255]) by mx-eu-01.ponee.io (Postfix) with ESMTPS id 9F9EA180636 for ; Tue, 6 Oct 2020 14:51:38 +0200 (CEST) Received: from mail.apache.org (mailroute1-lw-us.apache.org [207.244.88.153]) by mxout1-ec2-va.apache.org (ASF Mail Server at mxout1-ec2-va.apache.org) with SMTP id DCCDC43C0C for ; Tue, 6 Oct 2020 12:51:37 +0000 (UTC) Received: (qmail 98849 invoked by uid 500); 6 Oct 2020 12:51:37 -0000 Mailing-List: contact dev-help@mxnet.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@mxnet.apache.org Delivered-To: mailing list dev@mxnet.apache.org Received: (qmail 98833 invoked by uid 99); 6 Oct 2020 12:51:36 -0000 Received: from spamproc1-he-de.apache.org (HELO spamproc1-he-de.apache.org) (116.203.196.100) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Oct 2020 12:51:36 +0000 Received: from localhost (localhost [127.0.0.1]) by spamproc1-he-de.apache.org (ASF Mail Server at spamproc1-he-de.apache.org) with ESMTP id 237691FF39B for ; Tue, 6 Oct 2020 12:51:36 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamproc1-he-de.apache.org X-Spam-Flag: NO X-Spam-Score: -0.653 X-Spam-Level: X-Spam-Status: No, score=-0.653 tagged_above=-999 required=6.31 tests=[DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.2, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamproc1-he-de.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=github.com Received: from mx1-ec2-va.apache.org ([116.203.227.195]) by localhost (spamproc1-he-de.apache.org [116.203.196.100]) (amavisd-new, port 10024) with ESMTP id sw6kLYGIRlzN for ; Tue, 6 Oct 2020 12:51:35 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=209.85.167.42; helo=mail-lf1-f42.google.com; envelope-from=dmlc.notification+caf_=dev=mxnet.apache.org@gmail.com; receiver= Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) by mx1-ec2-va.apache.org (ASF Mail Server at mx1-ec2-va.apache.org) with ESMTPS id CB00DBB8AB for ; Tue, 6 Oct 2020 12:51:34 +0000 (UTC) Received: by mail-lf1-f42.google.com with SMTP id d24so10916120lfa.8 for ; Tue, 06 Oct 2020 05:51:34 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:delivered-to:dkim-signature:date:from:reply-to :to:cc:message-id:in-reply-to:references:subject:mime-version :content-transfer-encoding:precedence:list-id:list-archive:list-post :list-unsubscribe; bh=m84DoIL9XdVrC+yBepTezC4i2HQOSkvaRcKZSf8SwtQ=; b=VMlgLoMK9n/PB605G+47rpUtQm2HqoHLyc9aFm+vE4VZFdSaPysRVhWHJJb9Muh/Ca FHHB71N3Qt3sPlttcfMigzMVJ8WE2OjoC+kHZmOBJC5lxcYcNY/DOkZ9r7Q6j34cqKMJ JYmct7scLIrn9So/53Ld7lPgxbLc6ABiY7wPjThTanR9cb2UqS6WJxdpLxXc7gIDaw9/ U06iNXhC60Bov948b0uJ/gzoB63QFRFPJgvj+ttFt9WygHWoJgjk7jpf4dSlpc/NJ0ak ZyrtTiIuPacOBAWZiPabMwJQCQIVCMOzwHYGByT6CpZsUs0Q5w84u6NJfVmWwlIuI44y 1myA== X-Gm-Message-State: AOAM530RjwuoRlHNqzA85w5NWgogTTkaIMOHx+VL7LcqBEUx++FiknLP hgW9rT+HgY5t9/xxamJw2T1qlkDFIAyzrC2J0d6FSE9NnyPd+8FUGQ== X-Received: by 2002:a19:6b07:: with SMTP id d7mr516203lfa.510.1601988687671; Tue, 06 Oct 2020 05:51:27 -0700 (PDT) X-Forwarded-To: dev@mxnet.apache.org X-Forwarded-For: dmlc.notification@gmail.com dev@mxnet.apache.org Delivered-To: dmlc.notification@gmail.com Received: by 2002:a05:6504:1309:0:0:0:0 with SMTP id s9csp507330lto; Tue, 6 Oct 2020 05:51:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyiM7o+0977JepzmZCte5Mwo4cdZWVWlpo8/Le2Tid1ZvbZAEDTFZ37sviaIxr/MkUDNbnI X-Received: by 2002:a17:902:9695:b029:d3:8b4f:558c with SMTP id n21-20020a1709029695b02900d38b4f558cmr3147765plp.27.1601988685755; Tue, 06 Oct 2020 05:51:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601988685; cv=none; d=google.com; s=arc-20160816; b=OtuMy7wdLgFdI7U0gbGxlI1WuNY3CB0TMw7a7ka69omFE9sADvVDKQThjF+14c8sH/ 0+pJoOewbuwkOIcGtO4O2DeEg6GC/Zj+sbzq6InJ15MC3cJqU1d1Qv2d00T4/iQph8xr n6Dvnhfm9RPtrnXk7DrUS5QDffn1DCdiF92eEkZDySGLxJrOzgBtVoMZQvr65kuO8seW SOSxO9c6Z6zGu/xtrjti5hijNjLLyPKHr3w+g13NoDvo6nqn05C2hwLFKV+wVonzRW5J iZTWEAZVRISasWbnNiFQFRNt39OkXvC5NYuFekPNhe1HpbJ+SeD1aUVeEN5bLL46X26F biIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-post:list-archive:list-id:precedence :content-transfer-encoding:mime-version:subject:references :in-reply-to:message-id:cc:to:reply-to:from:date:dkim-signature; bh=m84DoIL9XdVrC+yBepTezC4i2HQOSkvaRcKZSf8SwtQ=; b=i/9RiiyT+SsbjM99msUx7eh/5td+wV0Zrm6j2as8COK8GYx3Iy0amn6JhiVej1BHsV zF0TYQH0Nd73yVJYdd4h+XraxxBKal8CDJmHQ0YiBU6PiOhJm06Qq1ueSKvhK7LULj6Y 2lEnVLN6OZgvUZ5dQiGSkwELf0uhHd/xIe70w8qGuyhpedJtwfJpg+f5wSBE+XFa8iYE HnRf1u4rNOHCxIlhCPYkL2Q96LsMSX5L7/lx/T735N4xDfR6IhX1G5fVlAqB7w+Wt+B0 ADcRHz5Pags3x+GjLURPJqni+Ah4ER/49irSYVmBDt2Xz7XP2cnbAuaQpkabEA7fh+xH OApA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@github.com header.s=pf2014 header.b=RVfPB9b1; spf=pass (google.com: domain of noreply@github.com designates 192.30.254.192 as permitted sender) smtp.mailfrom=noreply@github.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=github.com Received: from out-9.smtp.github.com (out-9.smtp.github.com. [192.30.254.192]) by mx.google.com with ESMTPS id q5si2626278pfb.98.2020.10.06.05.51.25 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 Oct 2020 05:51:25 -0700 (PDT) Received-SPF: pass (google.com: domain of noreply@github.com designates 192.30.254.192 as permitted sender) client-ip=192.30.254.192; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@github.com header.s=pf2014 header.b=RVfPB9b1; spf=pass (google.com: domain of noreply@github.com designates 192.30.254.192 as permitted sender) smtp.mailfrom=noreply@github.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=github.com Received: from github-lowworker-943b171.ac4-iad.github.net (github-lowworker-943b171.ac4-iad.github.net [10.52.22.59]) by smtp.github.com (Postfix) with ESMTP id E20AD5807A8 for ; Tue, 6 Oct 2020 05:51:24 -0700 (PDT) X-ASF-DKIM-Sig: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1601988684; bh=m84DoIL9XdVrC+yBepTezC4i2HQOSkvaRcKZSf8SwtQ=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=RVfPB9b1zZ92o3o7uhrinpv4vNzY/kEpUYOsJwJNPK2KcE5flBPdyWA/NHtu/WqWY d7yj2m++8nnFqAtUkjw21c7/DuAvOUrftiFFnpBht5LKDuZsm8NEyrhjmO7yjwPoJ0 J2TSSBBmQZxw8V3ZhofsmYJOHuOpBHb1AyK0GNf0= Date: Tue, 06 Oct 2020 05:51:24 -0700 From: Samuel Audet Reply-To: apache/incubator-mxnet To: apache/incubator-mxnet Cc: Sheng Zha , Mention Message-ID: In-Reply-To: References: Subject: Re: [apache/incubator-mxnet] [RFC] MXNet 2.0 JVM Language development (#17783) Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="--==_mimepart_5f7c684c9c6de_4e8f19f070576"; charset=UTF-8 Content-Transfer-Encoding: 7bit X-GitHub-Sender: saudet X-GitHub-Recipient: szha X-GitHub-Reason: mention List-Archive: https://github.com/apache/incubator-mxnet X-Auto-Response-Suppress: All X-GitHub-Recipient-Address: dmlc.notification@gmail.com ----==_mimepart_5f7c684c9c6de_4e8f19f070576 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit > @saudet if it is a maven package consumption should be fine as long as the license isn't fall under (no license, GPL, LGPL or some license that ASF doesn't approve). Great! Thanks for the clarification. It's Apache v2, so the license is alright. > I would +1 to the solution you have mentioned in JavaCPP. One last question is the maintainance cost, since JavaCPP is doing the generation work, how much maintainance does it require from community to keep in here? I've created a branch with a fully functional build that bundles MXNet with wrappers for the C API, on my fork here: https://github.com/saudet/incubator-mxnet/tree/add-javacpp It uses the defaults for CMake, but without CUDA or OpenCV, and I'm guessing it works on Mac and Windows too, but I've only tested on Linux (Fedora), which outputs the following, mapping all declarations of `typedef void*` to `Pointer` like you asked: ```bash $ git clone https://github.com/saudet/incubator-mxnet $ cd incubator-mxnet $ git checkout add-javacpp $ cd java $ gradle clean build --info ... org.apache.mxnet.internal.c_api.UnitTest > test STANDARD_OUT 20000 ... BUILD SUCCESSFUL in 1m 3s 10 actionable tasks: 10 executed ... $ ls -lh build/libs/ total 38M -rw-rw-r--. 1 saudet saudet 49K Oct 6 20:54 mxnet-2.0-SNAPSHOT.jar -rw-rw-r--. 1 saudet saudet 38M Oct 6 20:54 mxnet-2.0-SNAPSHOT-linux-x86_64.jar ``` The number of lines that are directly related to JavaCPP is less than 100, so even if I die anyone can maintain that. I'm sure that's going to grow a bit, but a C API is very easy to maintain. For example, the presets for the C API of TensorFlow 2.x had to be updated only 10 times over the course of the past year: https://github.com/tensorflow/java/blob/master/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/internal/c_api/presets/tensorflow.java -- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/apache/incubator-mxnet/issues/17783#issuecomment-704246821 ----==_mimepart_5f7c684c9c6de_4e8f19f070576--