From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?Herman=2C_G=C3=A9za?= Newsgroups: gmane.emacs.devel Subject: Re: I created a faster JSON parser Date: Fri, 15 Mar 2024 14:35:10 +0100 Message-ID: <87cyrv8vka.fsf@gmail.com> References: <87a5n96mb5.fsf@gmail.com> <20240309203725.x456m7c6soxtgj6q@nullprogram.com> <86jzmawqbm.fsf@gnu.org> <87ttldydf2.fsf@posteo.net> <867ci8vqvl.fsf@gnu.org> <5396AC95-1D8F-4A89-B4A8-647B717A1E3C@gmail.com> <87r0ggdcki.fsf@gmail.com> <437D901F-CEC6-45E0-8ABE-B036A7B0AAF5@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="26038"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= , =?utf-8?Q?Herman=2C_G=C3=A9za?= , Eli Zaretskii , Philip Kaludercic , wellons@nullprogram.com, emacs-devel@gnu.org To: Gerd =?utf-8?Q?M=C3=B6llmann?= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Mar 15 14:39:27 2024 Return-path: Envelope-to: ged-emacs-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 1rl7mQ-0006ct-MI for ged-emacs-devel@m.gmane-mx.org; Fri, 15 Mar 2024 14:39:26 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rl7lV-0006NL-JP; Fri, 15 Mar 2024 09:38:29 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rl7lM-0006KX-Cf for emacs-devel@gnu.org; Fri, 15 Mar 2024 09:38:20 -0400 Original-Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rl7lE-00069Z-0F; Fri, 15 Mar 2024 09:38:19 -0400 Original-Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-568b4b9aeeaso618438a12.3; Fri, 15 Mar 2024 06:38:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710509879; x=1711114679; darn=gnu.org; h=content-transfer-encoding:mime-version:message-id:in-reply-to:date :subject:cc:to:from:references:from:to:cc:subject:date:message-id :reply-to; bh=Qe8M6X93cyM8oCcLKcLYcfxOVzEUXYHhWy9YGFpSl1Y=; b=hU9MrhzbPw2/rlf66mFOfunn5i+3vbpdXc6+mTlTGnf0j9ji5C9UFxGHA1VwFryvnr 62V6FMVgR6S84xVPN81vOp9Wsc0RMXrbRdv2c8z64Kczwav+vP/mnu7XviA7T9Br9DSq /HcTELbJ9Gt6qkBtAuxaiPr0TR8FGPXhosDG8TCUTSM1zNZq9GrMasm7CzeVtdF+OtTS phS8rhWrNhrUeiEDSU7rBSL6Lw9h6STYgaL32uGURQtlcvHxR5cJPUEXs8m+G783sFAu mt3tan6KIufnkEONHqdySffTseKwyHP+aN5Jjm0Pe9FQBGs2H+9YioruSEFf7nkMx2hI qlfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710509879; x=1711114679; h=content-transfer-encoding:mime-version:message-id:in-reply-to:date :subject:cc:to:from:references:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=Qe8M6X93cyM8oCcLKcLYcfxOVzEUXYHhWy9YGFpSl1Y=; b=j/gLysw3lae2Ky6bdu3NDfowJcXXWZa5fOkIXXwbxorVA4kj/YohNV3xqjujvjiZRu 4Qfjfnj50T87ASJBXIqqfVHcgPHXTWLtHi/FjF7l63svUgfpxY8v4mAxXGzWbFliMCTy 5q9JT8qvsej7IOPsLcO4kr0IAJpZn4FT5B0pYNzMsZ95sv8UTPRt5gEiBZad3eOtFBDa QNQThPoaFmQoPT8ZC/hSGWJAkdjpUAVWzUUAOJVhl0fs9129ebwrjPWDDuM3zqhginCu sMlGwSA//kHn+TrUcDgqwJJBZKJqWmi9lN2e+TtUVppOAcnrlL0VvuCkOo9Ckh0FhXli M/6A== X-Forwarded-Encrypted: i=1; AJvYcCXrC52+4bJ8keydZbaGY1EPY4m/0y1yBTN5YmHL6/i1mBqAa5OKxLZr0AddG5cSbpdpHNa7mjV25Ymx3uHHb+RcBcwfrNoREmp1iG7xG3bceAk= X-Gm-Message-State: AOJu0YwiFVtFaKH2RI1oRCqVKXcf0NvePUn6cV2NK/BzQsHgQk43udOm zpSITdGojpXHAZ/3WskL7VK2hhsuT5N+oyzqA94usJzMZFDQLoZE X-Google-Smtp-Source: AGHT+IFLNUxnJYO7gKkD7Ge0vmnfjENDACy6WolyR7g+aYy15c87UAZ4W3y+XjUGOz9sYDftvjX14w== X-Received: by 2002:a05:6402:158b:b0:568:145a:4a19 with SMTP id ij11-20020a056402158b00b00568145a4a19mr3239566edb.4.1710509879367; Fri, 15 Mar 2024 06:37:59 -0700 (PDT) Original-Received: from localhost (netacc-gpn-204-59-62.pool.yettel.hu. [5.204.59.62]) by smtp.gmail.com with ESMTPSA id o1-20020aa7dd41000000b00568830944f9sm1692373edw.19.2024.03.15.06.37.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Mar 2024 06:37:58 -0700 (PDT) In-reply-to: Received-SPF: pass client-ip=2a00:1450:4864:20::534; envelope-from=geza.herman@gmail.com; helo=mail-ed1-x534.google.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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:317071 Archived-At: Gerd M=C3=B6llmann writes: > Mattias Engdeg=C3=A5rd writes: > >> There are some options. `record_unwind_protect_ptr_mark` would=20 >> be one, >> and it was made for code like this, but Gerd has been grumbling=20 >> about >> it lately. Perhaps it's easier just to disable GC in the=20 >> dynamic scope >> (inhibit_garbage_collection). > > Yes, I'm grumbling because record_..._mark assumes GC is=20 > mark-sweep. And > it's really super ugly to work around. > > And if you disable GC, I'll be grumbling because that's not good=20 > for a > concurrent GC. > > What do I propose: If you can, please make objects reachable=20 > from the > control stack. For instance, create a context object on the=20 > stack that > has a Lisp vector member. That will prevent GC'ing the vector=20 > and by > that its contents, of course. You could pass a pointer to the=20 > context > around to get access to the vector in subroutines, replace it=20 > with a > larger vector if necessary, and so on. I implemented this idea, here is the latest version (now,=20 object_workspace is a Lisp_Object): https://github.com/geza-herman/emacs/commit/12decaddc9b8260745be4d5782fea21= f4578eab2.patch Is there anything that need to be done?