From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Vijay Marupudi Newsgroups: gmane.lisp.guile.devel Subject: Re: Request to add *-resize! functions for contiguous mutable data structures. Date: Mon, 9 Aug 2021 13:35:14 -0500 Message-ID: <7145d696-ddb6-4c10-733a-56d0808e0293@gatech.edu> References: <97e4262b-3ff9-1b21-35d8-45ad9d45ca99@gatech.edu> <45e44ba58dbbb3b2fd3ffdeab4add4a1f7525cd4.camel@telenet.be> <065321a9-3c31-c047-c4c8-8843a9e96f51@gatech.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="17726"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.12.0 To: Maxime Devos , Taylan Kammer , guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Mon Aug 09 20:36:04 2021 Return-path: Envelope-to: guile-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mDA83-0004Lh-T5 for guile-devel@m.gmane-mx.org; Mon, 09 Aug 2021 20:36:04 +0200 Original-Received: from localhost ([::1]:33078 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mDA82-0007Ce-Dl for guile-devel@m.gmane-mx.org; Mon, 09 Aug 2021 14:36:02 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:53580) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mDA7N-00079P-Od for guile-devel@gnu.org; Mon, 09 Aug 2021 14:35:25 -0400 Original-Received: from mail-dm6nam08on2090.outbound.protection.outlook.com ([40.107.102.90]:9952 helo=NAM04-DM6-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mDA7K-0003XA-6d for guile-devel@gnu.org; Mon, 09 Aug 2021 14:35:21 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Kj8FhWwcF9vhJyNhzXaZ/kmbcaSlX78fn2ZD2crlqxn9Nh2tNDGv3Kk3h8eGJf8xGcOHZZ4bFPZ1pPZdLmKAN0cBaF8SQmm+j6DdJ74CT4d0ERyeTQn0v7uv9b+zBHBbP9pYs8oExKyTQYghMkEPG4UeDmjRiiRHQSEB8Kac6KqvpyQ2xCJzWVB6HCMhIupU/OapPYl43ESy/10C4z7cCZISaAfnl9bqFOSFkRmwunsMgxwQ0xLXZ2OSkuaUNsXShCE1vq9aTDHgUXsyghpMX2ASkZQzLYFrTMO7zxXwKFgquCVH+Ds8rej3Bc6DFpJhcLHoINv9N0z2hwSWx265Ng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=T1nFtwxZcmVdBeIhGTmxdfqVUK3mghsyRkPvV6uxQv4=; b=Wu1ZreNf1oDvYKquKljM+vzfwyLa/uC8Sj6TzMPY4jsLO6cL2fmfYSigIUdOwJqi1NBfzMrAyhDYkspp4G3eObxalhig6wdnWgZvOEpsr1rTEXb9f/wu1EnLPe3jxzKqPsnDV9LV97gu+8bADcDJQGpaqIjPIVlzlvRjGrC/YlriRqcSz1a+3u0PWHRkhnCT/XS2d+obVSwnh6T4OiNZUtWh467xheoCRTvwMRtTblFbd1BRmiTBRVpVHq4b5Y7MpxOCBgsmhMoad/tKjRPfMaIIo1lDcLErQIzOh0FpzmUNV+PRTUxg2e6lvR4FbjXV+o+cXWctIsHeLBQWmhAOAw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gatech.edu; dmarc=pass action=none header.from=gatech.edu; dkim=pass header.d=gatech.edu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gatech.edu; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=T1nFtwxZcmVdBeIhGTmxdfqVUK3mghsyRkPvV6uxQv4=; b=pzNC+zTFC+WNwUkXhN9bSmLcyyc+p9PlFpC9CdACxf90IhZ6VMO4pv1D7KYQd1ArnZXoqx2H4MjGXxdZ+MEZBp3cxe3ab5qpTsvAwJKzJux8sDx2EWUNsRWTVEm9js6PQm+4KFR6/qiZwxi7Q1B/yl87IMaDZ/VjgM9xMHqXWa8= Authentication-Results: gnu.org; dkim=none (message not signed) header.d=none;gnu.org; dmarc=none action=none header.from=gatech.edu; Original-Received: from BN8PR07MB5793.namprd07.prod.outlook.com (2603:10b6:408:9c::19) by BN8PR07MB5795.namprd07.prod.outlook.com (2603:10b6:408:97::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.16; Mon, 9 Aug 2021 18:35:15 +0000 Original-Received: from BN8PR07MB5793.namprd07.prod.outlook.com ([fe80::a542:a793:4d73:deb2]) by BN8PR07MB5793.namprd07.prod.outlook.com ([fe80::a542:a793:4d73:deb2%3]) with mapi id 15.20.4394.023; Mon, 9 Aug 2021 18:35:15 +0000 In-Reply-To: Content-Language: en-US-large X-ClientProxiedBy: CH0PR03CA0271.namprd03.prod.outlook.com (2603:10b6:610:e6::6) To BN8PR07MB5793.namprd07.prod.outlook.com (2603:10b6:408:9c::19) X-MS-Exchange-MessageSentRepresentingType: 1 Original-Received: from [192.168.1.45] (97.127.85.134) by CH0PR03CA0271.namprd03.prod.outlook.com (2603:10b6:610:e6::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.15 via Frontend Transport; Mon, 9 Aug 2021 18:35:15 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 645586d8-afa7-4bb1-f0b3-08d95b646e67 X-MS-TrafficTypeDiagnostic: BN8PR07MB5795: X-Microsoft-Antispam-PRVS: X-GT-Tenant: 042d12d7-75fe-4547-b5b6-0573f80f829d X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3WZ2+iQNSwOn/7S7C5YmcEYp57Y9Fdfwm43oKhtodoJg+BUKROWVwMYeFajnPVb+DKcpMl+g/HVv+XOEySGgICjTk+9BFWmV7bapkOqqtO1N24xoyjzJb3CYpzbA6zgH/jyS2G4neWc97xJ1Vm8aUPJpl8fAwxveVmPEY2kQkwbClyzn1P146Py+ltNCMe6OcB7LZguHQVpjAv6VTgbKWG6OL3mfv8vzMko+98F8t7CDb1aWCFITCKzycT6tyQ4cj+k0P4GHp1zH04L+LeIMJWoSLRMpd7ZgvFxyjkkb+G5q+d5BZJ/i/GlskBTu79vxloGYIT8jy5sRSRc56YCvU8ONEqL6jzmoRoMtHfXU+kphG+Q1x2P69N/b+ZLUrMAceXuAely0JnOaCTwFwLGVOULyqq7Hl8cvnBJjnRu39O1N/PRJmOMhveZ7ICrbCtBoS9Q/qDICb+jkfuUIGyO8wwDCnUzR/QQ5TkjCDcF7WMhmOfDniFyYDrQQhItUjqrz/mibHHHkMGHheSoszDWOp2rN2MxuX1iOi6C7EEj7ZXWMSwvWosM7WljW4a+VH4popAqA3gLCy4/MEje8UY8mAe0P3g4qc8baDq2HDB6/SVncBnvyCi4EXys1b/4+TRf2Hv88/GfCwKSxZz0Od7f570F2YIMlu+H+r3Lo7q9+ICxdfKc23cFy05j9QuFq6iDxqq3SDYURKZ8Y+V3s/UlSbSx5kUti8WJOmMm2W07H19mDFVKvrzrs9v0UVRZYc /PXlROF7B6qF8qUpufXbvObwChFCjqU/TQ2OwIO0iH1yXF6j0cspZ2WLDIHz6y4f2/2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN8PR07MB5793.namprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(136003)(396003)(366004)(376002)(39860400002)(26005)(66946007)(31686004)(66476007)(66556008)(53546011)(75432002)(6486002)(2616005)(38100700002)(8936002)(5660300002)(956004)(110136005)(86362001)(83380400001)(8676002)(31696002)(36756003)(186003)(16576012)(2906002)(478600001)(786003)(316002)(45980500001)(43740500002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?alA2Y1B3dnV6N1RmS1duMlF0ckszNlk2cm1BZzBDSVNiRHhocURBTXd6NDRU?= =?utf-8?B?RldJRmNHdFJCN21NQXlrNHlyL2RDVUNTQ21udmsrSXkxajFQTTZWYTlWR1FX?= =?utf-8?B?Ty96ZFduaGh1U3M1YjNmUVBtVmsyTlBRMmRrMC9uV0p2Rjc5eTJZQzNUZVB2?= =?utf-8?B?aDlkalhvTytVRkhmNXYweGNUd2VvT2xHNEwydjFjbWkxUE5nNThET2hnUlFP?= =?utf-8?B?aXB0djZLcCthTVlTUkhEdG9RKzJlVlU0S3pnZTBacnRFMUljQTVZcXQvaHZp?= =?utf-8?B?TjFRWGdPalh2ZkgwaEp5WDFDK0ZLUjNSNE82QmVsSkJnQVMzaTVYQmFsMVUy?= =?utf-8?B?cHVKYjl5VVNhRHFnbHRUSTNFMkRlYm84cmxyQlpEbzNOaFk3WDJrYVRiSm9H?= =?utf-8?B?VFNFbDUrenhzVTVBblhUS0JRWEh3ZlVnVU41L21WTW1jNDU0ZjV1eHhmVW5O?= =?utf-8?B?MzhySWN3VXFoTmJqYWdDTzh4VXlCUzJ1MVM4djlkYUdSdXNsdHdBVHgydXpn?= =?utf-8?B?OHkxVy9DY0RicWdNclBpaloycUZIM3d3N0Nja2VBRGJFMEpuZzhFUXRwcmxZ?= =?utf-8?B?NHFMczBnek9QTnJna3pVa2QzS01jWExoMTJJWURGVDRUZnNVWkQ3ZEk2Tllt?= =?utf-8?B?dmVRbUJzK1Y0UlAwN3NjQ09STTB6Z29ZYjZxay X-OriginatorOrg: gatech.edu X-MS-Exchange-CrossTenant-Network-Message-Id: 645586d8-afa7-4bb1-f0b3-08d95b646e67 X-MS-Exchange-CrossTenant-AuthSource: BN8PR07MB5793.namprd07.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2021 18:35:15.7818 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 482198bb-ae7b-4b25-8b7a-6d7f32faa083 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MRrkbHymT+M5AerLZeRrc6et5hHXpLEst+zKft5XXuqpNYTEIXP7M0ZGa0hz5DsQKHWKC/ufyDJpU60he2GCKQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR07MB5795 Received-SPF: pass client-ip=40.107.102.90; envelope-from=vijaymarupudi@gatech.edu; helo=NAM04-DM6-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.io gmane.lisp.guile.devel:20825 Archived-At: That does help with the freeing requirement, thank you Maxime! The request for this feature, if possible, still stands, because of ergonomic reasons, and also I want to store Scheme strings in a vector that can be resized. Until then, I will make do with this and the make-vector/vector-copy strategy. ~ Vijay On 8/9/21 1:24 PM, Maxime Devos wrote: > Vijay Marupudi schreef op zo 08-08-2021 om 23:02 [-0500]: >> Thank you for your responses Taylan and Maxime! >> >> My initial reaction to the concern about multithreaded code is similar >> to Taylan. I'm not sure if Guile has multithreading concepts built into >> the compiler. If so, one can only check the length again after a mutex. >> >> Appreciate the malloc, realloc, and free FFI solution. Ideally I >> wouldn't have to do that, but it does work. I have to manually free it >> though. > > You can avoid explicit free by using GC_MALLOC_ATOMIC and GC_REALLOC from > bdw-gc (the C library Guile uses for garbage collection) instead of malloc > and realloc, see . > > Greetings, > Maxme. >