[#106355] [Ruby master Bug#18373] RBS build failure: '/include/x86_64-linux/ruby/config.h', needed by 'constants.o'. — "vo.x (Vit Ondruch)" <noreply@...>

Issue #18373 has been reported by vo.x (Vit Ondruch).

28 messages 2021/12/01

[#106356] [Ruby master Bug#18374] make: Circular spec/ruby/optional/capi/ext/array_spec.c <- spec/ruby/optional/capi/ext/array_spec.c dependency dropped. — "vo.x (Vit Ondruch)" <noreply@...>

Issue #18374 has been reported by vo.x (Vit Ondruch).

8 messages 2021/12/01

[#106360] [Ruby master Feature#18376] Version comparison API — "vo.x (Vit Ondruch)" <noreply@...>

Issue #18376 has been reported by vo.x (Vit Ondruch).

28 messages 2021/12/01

[#106543] [Ruby master Bug#18396] An unexpected "hash value omission" syntax error when parentheses call expr follows — "koic (Koichi ITO)" <noreply@...>

Issue #18396 has been reported by koic (Koichi ITO).

10 messages 2021/12/08

[#106596] [Ruby master Misc#18399] DevMeeting-2022-01-13 — "mame (Yusuke Endoh)" <noreply@...>

Issue #18399 has been reported by mame (Yusuke Endoh).

11 messages 2021/12/09

[#106621] [Ruby master Misc#18404] 3.1 documentation problems tracking ticket — "zverok (Victor Shepelev)" <noreply@...>

Issue #18404 has been reported by zverok (Victor Shepelev).

16 messages 2021/12/11

[#106634] [Ruby master Bug#18407] Behavior difference between integer and string flags to File creation — deivid <noreply@...>

Issue #18407 has been reported by deivid (David Rodr鱈guez).

12 messages 2021/12/13

[#106644] [Ruby master Bug#18408] Rightward assignment into instance variable — "Dan0042 (Daniel DeLorme)" <noreply@...>

Issue #18408 has been reported by Dan0042 (Daniel DeLorme).

23 messages 2021/12/13

[#106686] [Ruby master Bug#18409] Crash (free(): invalid pointer) if LD_PRELOAD doesn't explicitly include libjemalloc.so.2 — "itay-grudev (Itay Grudev)" <noreply@...>

Issue #18409 has been reported by itay-grudev (Itay Grudev).

7 messages 2021/12/15

[#106730] [Ruby master Bug#18417] IO::Buffer problems — "zverok (Victor Shepelev)" <noreply@...>

Issue #18417 has been reported by zverok (Victor Shepelev).

9 messages 2021/12/19

[#106784] [CommonRuby Feature#18429] Configure ruby-3.0.3 on Solaris 10 Unknown keyword 'URL' in './ruby.tmp.pc' — "dklein (Dmitri Klein)" <noreply@...>

Issue #18429 has been reported by dklein (Dmitri Klein).

32 messages 2021/12/23

[#106828] [Ruby master Bug#18435] Calling `protected` on ancestor method changes result of `instance_methods(false)` — "ufuk (Ufuk Kayserilioglu)" <noreply@...>

Issue #18435 has been reported by ufuk (Ufuk Kayserilioglu).

23 messages 2021/12/26

[#106833] [Ruby master Feature#18438] Add `Exception#additional_message` to show additional error information — "mame (Yusuke Endoh)" <noreply@...>

Issue #18438 has been reported by mame (Yusuke Endoh).

30 messages 2021/12/27

[#106834] [Ruby master Bug#18439] Support YJIT for VC++ — "usa (Usaku NAKAMURA)" <noreply@...>

Issue #18439 has been reported by usa (Usaku NAKAMURA).

11 messages 2021/12/27

[#106851] [Ruby master Bug#18442] Make Ruby 3.0.3 on Solaris 10 with "The following command caused the error: cc -D_STDC_C99= " — "dklein (Dmitri Klein)" <noreply@...>

Issue #18442 has been reported by dklein (Dmitri Klein).

8 messages 2021/12/27

[#106928] [Ruby master Bug#18454] YJIT slowing down key Discourse benchmarks — "sam.saffron (Sam Saffron)" <noreply@...>

Issue #18454 has been reported by sam.saffron (Sam Saffron).

8 messages 2021/12/31

[ruby-core:106813] [Ruby master Misc#16944] questions about Net::IMAP patches

From: "nevans (Nicholas Evans)" <noreply@...>
Date: 2021-12-24 19:52:06 UTC
List: ruby-core #106813
Issue #16944 has been updated by nevans (Nicholas Evans).


FYI: this issue should be closed as well.  It's all been addressed on the `net/imap` issue tracker.  Thanks!

----------------------------------------
Misc #16944: questions about Net::IMAP patches
https://bugs.ruby-lang.org/issues/16944#change-95624

* Author: nevans (Nicholas Evans)
* Status: Open
* Priority: Normal
----------------------------------------
I work on a product that contains many changes to Net::IMAP, both to the client and especially to the response parser. One part of it is an `EventMachine` daemon that makes extensive use of `Net::IMAP::ResponseParser`, but only uses a little bit of the other code from the `Net::IMAP` client (the client is used in other places though).

I've submitted a few smaller patches already (better CAPABILITY parsing #16626, [ID][RFC2971] #16610, [NAMESPACE][RFC2342] #16627), and I have many more that I haven't gotten around to cleaning up for a patch yet (e.g. [remembering server-sent CAPABILITIES][RFC3501] and even using them in a few places, [COMPRESS=DEFLATE][RFC4978], [UIDPLUS][RFC4315], [SASL-IR][RFC4959], [SPECIAL USE][RFC6154], [AUTH=XOAUTH2][XOAUTH2] and [AUTH=OAUTHBEARER][RFC7628], [OBJECTID][RFC8474], [UTF8=ACCEPT][RFC6855], [ENABLE][RFC5161], and many many [RFC3501][RFC3501] parser bugs).

But before I prepare some of the bigger patches, I should ask:

* I would find it easier if `net/imap.rb` were split into several files. Would a patch like that be welcome and accepted?
  * especially: `net/imap/response_parser.rb` for `Net::IMAP::ResponseParser`.
  * But also: `net/imap/response_data.rb` for all of the response data `Struct`s (e.g. `TaggedResponse`, `FetchData`, `MailboxList`, etc),
  * and also: `net/imap/request_data.rb` (e.g. all of the `#send_data`/`#validate` classes, like `Atom`, `Literal`, `QuotedString`, etc).

* I would really like to split `Net::IMAP::ResponseParser` into three parts: the parser, the lexer, and a "builder" (so the data structures built by the parser can be more easily customized).  Would a patch that does just this (and nothing else) this be accepted?

* I have made many adhoc changes to the response parser over the years as I've worked around various server bugs or bugs in the parser. But the biggest issue seems to be that the parser is still largely based on an obsolete IMAP dialect. It's clear from looking at the comments and code around astrings (just as one example) that much of it pre-dates [RFC3501] (March 2003, over 17 years ago!) and was written to the older [RFC2060] (December 1996) standards. Although I can continue creating extracting and cleaning up smaller patches to update smaller pieces, would a much larger cleanup project to more closely match [RFC3501] be accepted?

* And lastly, what do you think about rewriting the parser/lexer using racc and/or ragel?  Unlike the above, I haven't even started on this project yet. And I wouldn't want to even start on this project until after the above has been taken care of, and the test suite has been added to. However, CPU is the limiting resource for my IMAP daemons, and I've wanted to rewrite or replace our parser for years now.  Even using EventMachine on some very powerful servers, I usually can't hold more than ~500 mostly idle IMAP connections per OS process before CPU is fully maxed (*far* fewer if they are very active at once).  For our newest project, my team has been using golang instead of ruby, even though the go IMAP library has fewer features and is more difficult to work with. That makes me sad. :(

[RFC2060]: https://tools.ietf.org/html/rfc2060
[RFC2342]: https://tools.ietf.org/html/rfc2342
[RFC2971]: https://tools.ietf.org/html/rfc2971
[RFC3501]: https://tools.ietf.org/html/rfc3501
[RFC4315]: https://tools.ietf.org/html/rfc4315
[RFC4959]: https://tools.ietf.org/html/rfc4959
[RFC4978]: https://tools.ietf.org/html/rfc4978
[RFC5161]: https://tools.ietf.org/html/rfc5161
[RFC6154]: https://tools.ietf.org/html/rfc6154
[RFC6855]: https://tools.ietf.org/html/rfc6855
[RFC7628]: https://tools.ietf.org/html/rfc7628
[RFC8474]: https://tools.ietf.org/html/rfc8474
[XOAUTH2]: https://developers.google.com/gmail/imap/imap-extensions



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next