public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.2.0-0.2
@ 2015-07-22 15:28 Corinna Vinschen
  2015-07-22 15:33 ` Eliot Moss
  0 siblings, 1 reply; 4+ messages in thread
From: Corinna Vinschen @ 2015-07-22 15:28 UTC (permalink / raw)
  To: cygwin

Hi Cygwin friends and users,


I released a new TEST version of Cygwin.  The version number is 2.2.0-0.2.

This test release needs some more good old-fashioned testing.

While the new features in this release are only interesting to
developers again, there's an intrusive under-the-hood change which just
needs testing in as many scenarios as possible.

==================================== tl;dr ==================================

Details aside, the interesting thing here is plain and simple this:
Does your stuff still work as with 2.1.0?  No regression?

============================================================================

The boring details:

  The under-the-hood change is this:  Certain functions in Cygwin were
  using very big buffers (32K, 64K, and more) on the stack.  While this
  is not much of a problem with the normal stacksize of 2 Megs, it's
  been a lot of stack pressure on an application-provided patch.  Yada,
  yada.

For devs only:

  NEW:  sigsetjmp and siglongjmp were only implemented as macros so far.
  POSIX requires functions longjmp and siglongjmp to exist.  2.2.0-0.2
  adds sigsetjmp and siglongjmp functions.

  2.2.0 comes with four new functions:  getcontext, setcontext,
  makecontext and swapcontext.

  My own testing included two very simple self-written STCs, as well
  as the example code from http://linux.die.net/man/3/makecontext, as
  well as the glibc testcase tst-makecontext3.c.
  
  As with the sigaltstack stuff, I'd be grateful if curious developers
  would give this implementation a test.  If it doesn't work as desired,
  please consider to create simple reproduces in plain C.

  Discussing aspects of this implementation may be best handled on the
  cygwin-developers mailing list or the #cygwin-developers IRC channel
  on Freenode.


Have fun,
Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.2.0-0.2
  2015-07-22 15:28 [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.2.0-0.2 Corinna Vinschen
@ 2015-07-22 15:33 ` Eliot Moss
  2015-07-22 16:06   ` Corinna Vinschen
  0 siblings, 1 reply; 4+ messages in thread
From: Eliot Moss @ 2015-07-22 15:33 UTC (permalink / raw)
  To: cygwin

On 7/22/2015 11:14 AM, Corinna Vinschen wrote:

>    NEW:  sigsetjmp and siglongjmp were only implemented as macros so far.
>    POSIX requires functions longjmp and siglongjmp to exist.  2.2.0-0.2
>    adds sigsetjmp and siglongjmp functions.
>
>    2.2.0 comes with four new functions:  getcontext, setcontext,
>    makecontext and swapcontext.

So I am wondering if signal handlers now have access to the full context,
including register values.  There was at one time a desire to port Jikes RVM,
a research Java Virtual Machine, to cygwin, to get it running under Windows.
Lack of ability to obtain and modify the ucontext in a signal handler was
the sticking point.  (It was needed in the case of, say, a null pointer
exception, to fake up the throwing of the Java exception when the signal
handler returns.)

Regards -- Eliot Moss

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.2.0-0.2
  2015-07-22 15:33 ` Eliot Moss
@ 2015-07-22 16:06   ` Corinna Vinschen
  2015-07-22 17:21     ` Eliot Moss
  0 siblings, 1 reply; 4+ messages in thread
From: Corinna Vinschen @ 2015-07-22 16:06 UTC (permalink / raw)
  To: cygwin

[-- Attachment #1: Type: text/plain, Size: 1593 bytes --]

On Jul 22 11:33, Eliot Moss wrote:
> On 7/22/2015 11:14 AM, Corinna Vinschen wrote:
> 
> >   NEW:  sigsetjmp and siglongjmp were only implemented as macros so far.
> >   POSIX requires functions longjmp and siglongjmp to exist.  2.2.0-0.2
> >   adds sigsetjmp and siglongjmp functions.
> >
> >   2.2.0 comes with four new functions:  getcontext, setcontext,
> >   makecontext and swapcontext.
> 
> So I am wondering if signal handlers now have access to the full context,
> including register values.  There was at one time a desire to port Jikes RVM,
> a research Java Virtual Machine, to cygwin, to get it running under Windows.
> Lack of ability to obtain and modify the ucontext in a signal handler was
> the sticking point.  (It was needed in the case of, say, a null pointer
> exception, to fake up the throwing of the Java exception when the signal
> handler returns.)

The full ucontext is available to signal handlers since Cygwin 2.0.4 if
sigaction is called with the SA_SIGINFO flag set, courtesy of Jon
Turney's efforts.

New in 2.2.0 is only the matching implementation of the aforementioned
functions.

Please note that the ucontext_t and mcontext_t types are platform
specific.  The mcontext_t type reflects the Windows CONTEXT type more
than the Linux mcontext_t type.

For the ucontext_t type see /usr/include/sys/ucontext.h
For the mcontext_t type see /usr/include/cygwin/signal.h


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.2.0-0.2
  2015-07-22 16:06   ` Corinna Vinschen
@ 2015-07-22 17:21     ` Eliot Moss
  0 siblings, 0 replies; 4+ messages in thread
From: Eliot Moss @ 2015-07-22 17:21 UTC (permalink / raw)
  To: cygwin

On 7/22/2015 12:06 PM, Corinna Vinschen wrote:
> On Jul 22 11:33, Eliot Moss wrote:
>> On 7/22/2015 11:14 AM, Corinna Vinschen wrote:
>>
>>>    NEW:  sigsetjmp and siglongjmp were only implemented as macros so far.
>>>    POSIX requires functions longjmp and siglongjmp to exist.  2.2.0-0.2
>>>    adds sigsetjmp and siglongjmp functions.
>>>
>>>    2.2.0 comes with four new functions:  getcontext, setcontext,
>>>    makecontext and swapcontext.
>>
>> So I am wondering if signal handlers now have access to the full context,
>> including register values.  There was at one time a desire to port Jikes RVM,
>> a research Java Virtual Machine, to cygwin, to get it running under Windows.
>> Lack of ability to obtain and modify the ucontext in a signal handler was
>> the sticking point.  (It was needed in the case of, say, a null pointer
>> exception, to fake up the throwing of the Java exception when the signal
>> handler returns.)
>
> The full ucontext is available to signal handlers since Cygwin 2.0.4 if
> sigaction is called with the SA_SIGINFO flag set, courtesy of Jon
> Turney's efforts.
>
> New in 2.2.0 is only the matching implementation of the aforementioned
> functions.
>
> Please note that the ucontext_t and mcontext_t types are platform
> specific.  The mcontext_t type reflects the Windows CONTEXT type more
> than the Linux mcontext_t type.
>
> For the ucontext_t type see /usr/include/sys/ucontext.h
> For the mcontext_t type see /usr/include/cygwin/signal.h

Thanks!  Helpful to know!   Eliot

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-07-22 17:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-22 15:28 [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.2.0-0.2 Corinna Vinschen
2015-07-22 15:33 ` Eliot Moss
2015-07-22 16:06   ` Corinna Vinschen
2015-07-22 17:21     ` Eliot Moss

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).