From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 7911C385843E for ; Tue, 2 Apr 2024 14:06:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7911C385843E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 7911C385843E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712066797; cv=none; b=rxTSPhOmLpahm/r/4xxKC/3pMphFHBoV03z13vWHe2CmLvPQJQaeNvpJY+4w1luFUyVOQWyKhTx4idG3FuxHRpfsIGs8zMz+mPPb2oLzfcjA2//5v+Y83nqBIveAy5+hOOJrd5BcTXdThReWaOIS2sRg1tNZoGx5JSjK4hnu1xw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712066797; c=relaxed/simple; bh=ej/EieXaewVnzfFSMekv/o+AT6nWBDm6s69v6Ka6QF0=; h=DKIM-Signature:Message-ID:Subject:From:To:Date:MIME-Version; b=PbjaobQk0vH0A5xYKMFCR76ZbJc66cQWgVwI7zw4KJ4T1IFQOoPhiNezu+qV4+Fe96PJ6b15xoFC85A5lZp/Yjp3YMDX5OgW0A9d1OBrkpUYzSyO5jgOaPymwryg8vLOYyCFWfOkh6B3rC5lh0iKdHnvzZyxBMvqL8ZY7KB0GxM= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1712066787; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Q73hTgGpQm9Ft5FzX2LoH2ccfv3HwCVXniIR656AKOM=; b=NHeAgKcHq7iOkS91TZkKUS/9/b57VVWlH+6p0qmKYW2GTNJzbQv3UrMQzSjwPoeasl2+cb zW6rq9mz6GtcSIdzsZi2hbq/PEthBBiMnTKBpp3XdMaC5WKDLub0EAafHuIUHv3cUnKYKO DrQCFcEg8DcvZIA32jP5Y7rzXw1hL5Q= Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-548-K24B6-3iNJ6C-0_W4kISeA-1; Tue, 02 Apr 2024 10:06:26 -0400 X-MC-Unique: K24B6-3iNJ6C-0_W4kISeA-1 Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-6910d0d4d0bso60499406d6.1 for ; Tue, 02 Apr 2024 07:06:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712066784; x=1712671584; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Q73hTgGpQm9Ft5FzX2LoH2ccfv3HwCVXniIR656AKOM=; b=OCMLNINi94k59MDdM1jC6eR5U4UuHkJlgFvud0qVcl+mD3Vu7QptwFXwUKwprosMyu s77OsM6ED2QurdNgmrAlgXLUy91f/dzRFEdQSXScO2TiK+/77jadd7Pc30ZtPf8hlcfD YkISLEpuWSk6W08Jrkqedkz1TGcaf4cjkxKogI1YEuH6hoODfvfDtXwVWWAhs6VDQ2+9 p1zFV9pX6b88j9fTYMOHTciXCYQJFtGrq/itOQG523X4s9T6wAVlimpfuNOEUCwv7acu fTgAlsXp7sn9bH6mU/iZiGRiXv96LMf5AU6WPrHkWPXkC2rIU+B59hpqXzPkGYNzs+c/ 9lOQ== X-Forwarded-Encrypted: i=1; AJvYcCU3BVwaUJLHKxDeIhzLmMLw9OYRWeqAfZg7+dVCYodTtmF8J88RJZUNVjmb4GrsRYtGfBZXlA6q8DjgqGL/nMw= X-Gm-Message-State: AOJu0YwyABWZf2vffo4poqQh+WgLNdOw84cnxWw+ZGxBY2H22f6cWc7D fqJUnb17pWJPIJE+GoFLps9wZzkGLkjwu9PlMLwR5nsR+HRRmB/mMl4LaCKvspobosfw1KzhsSJ EDB0LI7DaOqKa4hKP2V95+NpvmuC0XHHvtxgmr++TqY0Oy/vsJDWI X-Received: by 2002:a05:6214:1710:b0:696:315e:943a with SMTP id db16-20020a056214171000b00696315e943amr12041329qvb.39.1712066783360; Tue, 02 Apr 2024 07:06:23 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEK/kPArfj68Q9+T3Z21piPUu15nsEaIo3zDkx1aJ32Fj3UhmFLhuRmSRslXJ0AHRJwqgZldw== X-Received: by 2002:a05:6214:1710:b0:696:315e:943a with SMTP id db16-20020a056214171000b00696315e943amr12041302qvb.39.1712066782980; Tue, 02 Apr 2024 07:06:22 -0700 (PDT) Received: from t14s.localdomain (c-76-28-97-5.hsd1.ma.comcast.net. [76.28.97.5]) by smtp.gmail.com with ESMTPSA id r11-20020a056214212b00b0068ff8d75a90sm170358qvc.19.2024.04.02.07.06.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Apr 2024 07:06:22 -0700 (PDT) Message-ID: Subject: Re: GSoC Timeline Review From: David Malcolm To: Nada Elsayed , gcc@gcc.gnu.org Cc: ef2648@columbia.edu Date: Tue, 02 Apr 2024 10:06:21 -0400 In-Reply-To: References: User-Agent: Evolution 3.44.4 (3.44.4-2.fc36) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00,BODY_8BITS,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Sat, 2024-03-30 at 13:54 +0200, Nada Elsayed wrote: > I think that I didn't fully understand the project, so I read more > and > updated the Timeline Suggestion. Hi Nada I'm very sorry for not responding sooner; I've been dealing with an=20 difficult issue that's arisen outside of my computer work, but that's a poor excuse. The deadline for applications is in a few hours time, so please go ahead and get an application in if you haven't done so already. Google are very strict about the deadlines. Amongst other things, a good application should: * describe/give evidence of your ability/skills in C++ (e.g. do you have a github account?) * describe/give evidence of your knowledge of the CPython extension API. I think you mentioned that you had done a experimented with this to get a feel for it, and wrote some toy examples; can you send me the code you wrote please? If you've already posted an application, feel free to send this info separately to me (and I'm sorry again for leaving my reply so late). Have you tried building GCC from source yet? That would be a good thing to do (and to mention in an application). Various notes inline below, throughout... >=20 > Suggested Timeline: >=20 > =C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0 May 1-26: > =C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Explore Cython modules and try more realis= tic codes to see how > it > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 translates Python to c/c++. Note that "Cython" and "CPython" are different things. "CPython" is the C implementation of Python (i.e. the one that most people use, as opposed to, say, PyPy, which is a different implementation of the language used by advanced users with performance requirements). "Cython" is a tool for generating .c source files for CPython extension modules from a .pyx language that's a mixture of C and Python-like syntax. The project should primarily be about CPython extension modules. The code generated by Cython tends to be correct, so I'm much less interested in analyzing it. So in your proposal above it should talk about CPython, rather than Cython. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Know more about entry-points that Cython u= ses. Similarly here. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Understand common bugs that happen when co= nverting Python to > c/c++. >=20 >=20 >=20 > =C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0 Explore static analysis tool for CPython Extension code -whi= ch is > =C2=A0=C2=A0 written in Python- and try this analyzer to understand the b= ugs in > =C2=A0=C2=A0 translated Python code fully. Sadly this old project of mine has been bit-rotting for years, and doesn't work well anymore. But hopefully it's still useful for getting ideas. > =C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0 Know how we can emit warnings and errors. >=20 >=20 >=20 > =C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0 Debug the codebase to grasp its structure and potential area= s for > =C2=A0=C2=A0 improvement. I'd like us also to create a page on the gcc wiki to capture some of the ideas. >=20 >=20 > =C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0 Weeks 1-2: > =C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Understand more about reference counting v= erification. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Develop verifying reference counts for PyO= bjects passed as > parameters. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0 Weeks 3-4: > =C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Begin to investigate Error Handling Checki= ng. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Understand how the Static Analysis tool do= es Error Handling > checking. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Implement these checks in the plugin. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0 Weeks 5-7: > =C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Begin to investigate Exception Handling Ch= ecking. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Understand how the Static Analysis tool do= es Exception Handling > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 checking. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Implement these checks in the plugin. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0 Weeks 8-11 > =C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Begin to investigate Format String Checkin= g. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Understand how the Static Analysis tool do= es Format String > Checking. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Implement these checks in the plugin. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0 Week 12 > =C2=A0=C2=A0 - >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Writing the GSoC wrapping-up document. This timeline is very ambitious; last year Eric spent a lot of time simply understanding the way the analyzer represents the state of the program. >=20 >=20 > =E2=80=AB=D9=81=D9=8A =D8=A7=D9=84=D8=A3=D8=B1=D8=A8=D8=B9=D8=A7=D8=A1=D8= =8C 27 =D9=85=D8=A7=D8=B1=D8=B3 2024 =D9=81=D9=8A 2:31 =D8=B5 =D8=AA=D9=85= =D8=AA =D9=83=D8=AA=D8=A7=D8=A8=D8=A9 =D9=85=D8=A7 =D9=8A=D9=84=D9=8A =D8= =A8=D9=88=D8=A7=D8=B3=D8=B7=D8=A9 =E2=80=AANada > Elsayed=E2=80=AC=E2=80=8F <=E2=80=AAnadaelsayed163@gmail.com=E2=80=AC=E2= =80=8F>:=E2=80=AC >=20 > > Greetings All, > > Hope this email finds you well. > > I am interested in "Extend the plugin to add checking for usage of > > the > > CPython API" project. First of all, I built the library, and now I > > am > > trying to debug it. Then, I also used Cpython in 3 demos to > > understand how > > it works. Finally, I read the uploaded patch comments to understand > > the > > codebase and file structure. As I mentioned above, please send me the demo code you wrote. What timezone are you in? (I'm in EDT, UTC+4) Sorry again for now responding sooner, and if you haven't applied yet, you should do that ASAP as it looks like the deadline is in 4 hours time; prioritize getting that in over responding to my other questions. Let me know if you need help with anything. Thanks Dave > >=20 > > I was wondering if you could review my suggested timeline? > > suggested Timeline: > >=20 > > =C2=A0=C2=A0 - > >=20 > > =C2=A0=C2=A0 May 1-26: > > =C2=A0=C2=A0 - > >=20 > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Explore Cython modules, emphasizing entr= y-points and bug > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 identification. > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - > >=20 > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Study analyzers, particularly cpy-analyz= er, to enhance > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 understanding. > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - > >=20 > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Debug the codebase to grasp its structur= e and potential areas > > for > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 improvement. > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - > >=20 > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Focus investigation on "errors in GIL ha= ndling" and > > "tp_traverse > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 errors". > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - > >=20 > > =C2=A0=C2=A0 Weeks 1-6: > > =C2=A0=C2=A0 - > >=20 > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Investigate GIL (Global Interpreter Lock= ) errors extensively. > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - > >=20 > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Engage in discussions and develop viable= solutions to address > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 identified issues. > >=20 > >=20 > >=20 > > =C2=A0=C2=A0 - > >=20 > > =C2=A0=C2=A0 Weeks 7-12: > > =C2=A0=C2=A0 - > >=20 > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Gain insight into the functioning of the= Garbage Collector. > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - > >=20 > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Implement checks to mitigate traverse er= rors effectively. > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - > >=20 > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Ensure robust error handling mechanisms = are in place through > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 thorough study and practical implementat= ion. > >=20 > >=20