Re: [Chicken-hackers] pop3 support TOP command?

2014-03-17 Thread John J Foerch
Alex Shinn  writes:
> On Mon, Mar 17, 2014 at 6:49 AM, John J Foerch 
> wrote:
>
> Very nice! I see that it has SSL support as well. Would you be at all
> inclined to making some of hato's modules, like hato-pop,
> independently
> available?
>
> Yes, the plan is to make all of hato's modules available
> as R7RS modules.
>

Sounds great, I look forward to it.

-- 
John Foerch


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] pop3 support TOP command?

2014-03-17 Thread Alex Shinn
On Mon, Mar 17, 2014 at 6:49 AM, John J Foerch wrote:

> Very nice!  I see that it has SSL support as well.  Would you be at all
> inclined to making some of hato's modules, like hato-pop, independently
> available?
>

Yes, the plan is to make all of hato's modules available
as R7RS modules.


> John Foerch
>
> Alex Shinn  writes:
> > Hato supports pop3-top:
> >
> > https://code.google.com/p/hato/
> >
> > On Sun, Mar 16, 2014 at 5:52 AM, John Cowan 
> > wrote:
> >
> > John J Foerch scripsit:
> >
> >
> > > Maybe this would be an idea for a new egg to supersede the pop3
> egg.
> > I
> > > would be glad to hear anybody's thoughts on this.
> > >
> > > [1]: http://docs.racket-lang.org/net/pop3.html
> >
> >
> > Sounds like an excellent idea, if you or someone else wanted to
> tackle
> > it.
> >
> > --
> > XQuery Blueberry DOM John Cowan
> > Entity parser dot-com co...@ccil.org
> > Abstract schemata http://www.ccil.org/~cowan
> > XPointer errata
> > Infoset Unicode BOM --Richard Tobin
> >
> > ___
> > Chicken-hackers mailing list
> > Chicken-hackers@nongnu.org
> > https://lists.nongnu.org/mailman/listinfo/chicken-hackers
> >
> >
> > ___
> > Chicken-hackers mailing list
> > Chicken-hackers@nongnu.org
> > https://lists.nongnu.org/mailman/listinfo/chicken-hackers
>
>
> ___
> Chicken-hackers mailing list
> Chicken-hackers@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/chicken-hackers
>
___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] [PATCH] Fix finalizer issue on non-GCable constants

2014-03-17 Thread Kon Lovett

On Mar 17, 2014, at 1:38 PM, Peter Bex  wrote:

> Hi all,
> 
> The attached patch fixes the problem from subject, as described here:
> http://lists.nongnu.org/archive/html/chicken-users/2014-03/msg00088.html
> 
> It also cleans up the code a little bit by re-using well-named C
> functions instead of repeating the same inline and C preprocessor-heavy
> checks which required comments to make sense of them.
> 
> Felix has provided feedback on this patch, and it has been tested by
> Pluijzer.

passes check on MacOS 10.9.2, Apple LLVM version 5.1 (clang-503.0.38) , x86_64

(had to reject the "Acknowledgements" edit though)

> 
> Cheers,
> Peter
> -- 
> http://www.more-magic.net
> <0001-Don-t-fire-finalizers-on-compiled-non-GCable-constan.patch>___
> Chicken-hackers mailing list
> Chicken-hackers@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/chicken-hackers


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] chicken-fuse

2014-03-17 Thread Jörg F. Wittenberger

Turns out there's some other bug (though in fuse.scm)

Am 17.03.2014 15:55, schrieb "Jörg F. Wittenberger":

Hi Evan,

I'm running up against some crazy segfault.  It happens under some 
locally reproducibly circumstances, though I do not yet understand it.


Nevertheless, I'm concerned with the inconsistent  related use of 
fuse_file_info_fh's result.


As far as I see it's only set in fuse_open_callback to the result of 
object-evict of the users value.


In fuse_release_callback it is used as - correspondingly - expected by 
first calling object-unevict on fuse_file_info_fh's return value.


However fuse_read_callback and fuse_write_callback both simply pass 
the result up to the user code.  This strikes me as wrong, isn't it?


These concerns remain valid IMHO.  Aren't they?


However my problem was caused by fuse_create_callback, which indeed 
seems broken.


According to fuse.h " If the file does not exist, first create it with 
the specified mode, and then open it" I understand that the create 
procedure is supposed to return a file handle, not simply a error code.  
That is the wrapper in fuse.scm should set the info file handle like this:


(define-callback (fuse_create_callback (c-string path) (mode_t mode) 
(fuse_file_info fi)) int
  (let ((v ((current-filesystem-callback 7) path mode)))
(fuse_file_info_fh_set! fi (object-evict v))
(callback-result 'create v)))


With this change the code already works much better.  ;-)

Unfortunately: that won't fix my problem.  I'm using (as per 
documented recommendation) integer values as handles anyway.  I would 
assume them to not be damaged that way.  (BEWARE: that's a wild guess.)


The segfault I'm getting however is always when the return value 
fuse_file_info_fh is accessed.  I tried to wrap an object-unevict 
around it - same.  Just that the segfault is then no longer in my 
code, but right in the object-unevict I inserted into fuse.scm.


Continuing my wild guesswork: the stack trace from gdb points right 
into srfi-69 code and up the call chain the next I'm seeing is the 
"(let copy ...)" loop from object-unevict.  The offending call seems 
to be hash-table-ref/default in the cond within that "copy" loop.


Sorry for this noise.


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


[Chicken-hackers] [PATCH] Fix finalizer issue on non-GCable constants

2014-03-17 Thread Peter Bex
Hi all,

The attached patch fixes the problem from subject, as described here:
http://lists.nongnu.org/archive/html/chicken-users/2014-03/msg00088.html

It also cleans up the code a little bit by re-using well-named C
functions instead of repeating the same inline and C preprocessor-heavy
checks which required comments to make sense of them.

Felix has provided feedback on this patch, and it has been tested by
Pluijzer.

Cheers,
Peter
-- 
http://www.more-magic.net
>From 7110da9beb8e6ada2a070dc07acdeadd3df8ad4e Mon Sep 17 00:00:00 2001
From: Peter Bex 
Date: Mon, 17 Mar 2014 21:30:39 +0100
Subject: [PATCH] Don't fire finalizers on compiled, non-GCable constants
 (reported by "Pluijzer")

---
 NEWS  |3 +++
 manual/Acknowledgements   |   38 +++---
 runtime.c |   45 +
 tests/runtests.bat|4 
 tests/runtests.sh |2 ++
 tests/test-finalizers.scm |   15 +++
 6 files changed, 60 insertions(+), 47 deletions(-)

diff --git a/NEWS b/NEWS
index e967a15..b7120df 100644
--- a/NEWS
+++ b/NEWS
@@ -24,6 +24,9 @@
 - Runtime system
   - The procedure trace buffer has been made resizable.
   - C_zap_strings and ##sys#zap-strings (undocumented) have been deprecated.
+  - finalizers on constants are ignored in compiled code because compiled
+constants are never GCed (before, the finalizer would be incorrectly
+invoked after the first GC).  (Reported by "Pluijzer")
 
 - Tools
   - csc: "-z origin" is now passed as a linker option on FreeBSD when
diff --git a/manual/Acknowledgements b/manual/Acknowledgements
index cbf9d5f..14283c2 100644
--- a/manual/Acknowledgements
+++ b/manual/Acknowledgements
@@ -35,25 +35,25 @@ Eric Merrit, Perry Metzger, Scott G. Miller, Mikael, Karel 
Miklav,
 Bruce Mitchener, Fadi Moukayed, Chris Moline, Eric E. Moore, Julian
 Morrison, Dan Muresan, David N. Murray, Timo Myyrä, "nicktick", Lars
 Nilsson, Ian Oversby, "o.t.", Gene Pavlovsky, Levi Pearson, Jeronimo
-Pellegrini, Nicolas Pelletier, Derrell Piper, Carlos Pita, Robin Lee
-Powell, Alan Post, "Pupeno", Davide Puricelli, "presto", Doug Quale,
-Imran Rafique, Eric Raible, Ivan Raikov, Santosh Rajan, Joel Reymont,
-"rivo", Chris Roberts, Eric Rochester, Paul Romanchenko, Andreas
-Rottman, David Rush, Lars Rustemeier, Daniel Sadilek, Otavio Salvador,
-Burton Samograd, "Sandro", "satori", Aleksej Saushev, Oskar Schirmer,
-Reed Sheridan, Ronald Schröder, Spencer Schumann, Ivan Shcheklein,
-Alex Shinn, Ivan Shmakov, "Shmul", Tony Sidaway, Jeffrey B. Siegal,
-Andrey Sidorenko, Michele Simionato, Iruata Souza, Volker Stolz, Jon
-Strait, Dorai Sitaram, Robert Skeels, Jason Songhurst, Clifford Stein,
-David Steiner, Sunnan, Zbigniew Szadkowski, Rick Taube, Nathan Thern,
-Mike Thomas, Minh Thu, Christian Tismer, Andre van Tonder, John Tobey,
-Henrik Tramberend, Vladimir Tsichevsky, James Ursetto, Neil van Dyke,
-Sam Varner, Taylor Venable, Sander Vesik, Jaques Vidrine, Panagiotis
-Vossos, Shawn Wagner, Peter Wang, Ed Watkeys, Brad Watson, Thomas
-Weidner, Göran Weinholt, Matthew Welland, Drake Wilson, Jörg
-Wittenberger, Peter Wright, Mark Wutka, Adam Young, Richard Zidlicky,
-Houman Zolfaghari and Florian Zumbiehl for bug-fixes, tips and
-suggestions.
+Pellegrini, Nicolas Pelletier, Derrell Piper, Carlos Pita, "Pluijzer",
+Robin Lee Powell, Alan Post, "Pupeno", Davide Puricelli, "presto",
+Doug Quale, Imran Rafique, Eric Raible, Ivan Raikov, Santosh Rajan,
+Joel Reymont, "rivo", Chris Roberts, Eric Rochester, Paul Romanchenko,
+Andreas Rottman, David Rush, Lars Rustemeier, Daniel Sadilek, Otavio
+Salvador, Burton Samograd, "Sandro", "satori", Aleksej Saushev, Oskar
+Schirmer, Reed Sheridan, Ronald Schröder, Spencer Schumann, Ivan
+Shcheklein, Alex Shinn, Ivan Shmakov, "Shmul", Tony Sidaway, Jeffrey
+B. Siegal, Andrey Sidorenko, Michele Simionato, Iruata Souza, Volker
+Stolz, Jon Strait, Dorai Sitaram, Robert Skeels, Jason Songhurst,
+Clifford Stein, David Steiner, Sunnan, Zbigniew Szadkowski, Rick
+Taube, Nathan Thern, Mike Thomas, Minh Thu, Christian Tismer, Andre
+van Tonder, John Tobey, Henrik Tramberend, Vladimir Tsichevsky, James
+Ursetto, Neil van Dyke, Sam Varner, Taylor Venable, Sander Vesik,
+Jaques Vidrine, Panagiotis Vossos, Shawn Wagner, Peter Wang, Ed
+Watkeys, Brad Watson, Thomas Weidner, Göran Weinholt, Matthew Welland,
+Drake Wilson, Jörg Wittenberger, Peter Wright, Mark Wutka, Adam Young,
+Richard Zidlicky, Houman Zolfaghari and Florian Zumbiehl for
+bug-fixes, tips and suggestions.
 
 Special thanks to Brandon van Every for contributing the (now defunct)
 [[http://www.cmake.org|CMake]] support and for helping with Windows
diff --git a/runtime.c b/runtime.c
index fdbc4d0..35dcf2b 100644
--- a/runtime.c
+++ b/runtime.c
@@ -497,6 +497,7 @@ static void C_fcall really_mark(C_word *x) C_regparm;
 static WEAK_TABLE_ENTRY *C_fcall lookup_weak_table_entry(C_word item, C_word 
container) C_

Re: [Chicken-hackers] chicken-fuse

2014-03-17 Thread Jörg F. Wittenberger

Hi Evan,

I'm running up against some crazy segfault.  It happens under some 
locally reproducibly circumstances, though I do not yet understand it.


Nevertheless, I'm concerned with the inconsistent  related use of 
fuse_file_info_fh's result.


As far as I see it's only set in fuse_open_callback to the result of 
object-evict of the users value.


In fuse_release_callback it is used as - correspondingly - expected by 
first calling object-unevict on fuse_file_info_fh's return value.


However fuse_read_callback and fuse_write_callback both simply pass the 
result up to the user code.  This strikes me as wrong, isn't it?



Unfortunately: that won't fix my problem.  I'm using (as per documented 
recommendation) integer values as handles anyway.  I would assume them 
to not be damaged that way.  (BEWARE: that's a wild guess.)


The segfault I'm getting however is always when the return value 
fuse_file_info_fh is accessed.  I tried to wrap an object-unevict around 
it - same.  Just that the segfault is then no longer in my code, but 
right in the object-unevict I inserted into fuse.scm.


Continuing my wild guesswork: the stack trace from gdb points right into 
srfi-69 code and up the call chain the next I'm seeing is the "(let copy 
...)" loop from object-unevict.  The offending call seems to be 
hash-table-ref/default in the cond within that "copy" loop.


So unless someone is found, who is competent enough to debug 
object-evict/object-unevict, I'm afraid I'm lost.


At worst I'd recommend to simply remove the ability to use any Scheme 
object as file handle and simply require them to be integers.  Then we 
could do away with the evict/unevict code.


Any thought?

Thanks

/Jörg

Am 10.03.2014 09:34, schrieb "Jörg F. Wittenberger":

Am 09.03.2014 21:01, schrieb Evan Hanson:

Hi Jörg, thanks for looking into this.

Indeed, there's definitely more copying happening than really needs to.



___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] [Chicken-users] Testers wanted; iOS patch

2014-03-17 Thread Moritz Heidkamp
Hi again,

Moritz Heidkamp  writes:

> I have a new version of this patch on my machine which applies cleanly
> again (Felix already reviewed it). I'll post it here when I'm back at
> it!

find it attached!

Moritz
>From 4064075061189c7b743b69ebbacad82a089c5c34 Mon Sep 17 00:00:00 2001
From: felix 
Date: Thu, 19 Dec 2013 11:02:06 +0100
Subject: [PATCH] Added basic iOS support.

---
 Makefile.ios  | 111 ++
 README|  32 +++
 distribution/manifest |   1 +
 tcp.scm   |  33 ---
 4 files changed, 171 insertions(+), 6 deletions(-)
 create mode 100644 Makefile.ios

diff --git a/Makefile.ios b/Makefile.ios
new file mode 100644
index 000..dff7875
--- /dev/null
+++ b/Makefile.ios
@@ -0,0 +1,111 @@
+# Makefile.ios - configuration for Apple iOS -*- Makefile -*-
+#
+# Copyright (c) 2013, The Chicken Team
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
+# conditions are met:
+#
+#   Redistributions of source code must retain the above copyright notice, this list of conditions and the following
+# disclaimer. 
+#   Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the distribution. 
+#   Neither the name of the author nor the names of its contributors may be used to endorse or promote
+# products derived from this software without specific prior written permission. 
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+
+ifneq ($(CONFIG),)
+include $(CONFIG)
+endif
+
+SRCDIR = ./
+
+# platform configuration
+
+# for simulator:  ARCH ?= i386
+ARCH ?= armv7
+XCODE_PATH ?= /Applications/Xcode.app
+XCODE_DEVELOPER ?= $(XCODE_PATH)/Contents/Developer
+# for Xcode 4:  XCODE_TOOLPATH ?= $(XCODE_DEVELOPER)/Toolchains/XCodeDefault.xctoolchain/usr/bin
+XCODE_TOOLPATH ?= $(XCODE_DEVELOPER)/usr/bin
+# for simulator:  XCODE_SDK ?= $(XCODE_DEVELOPER)/Platforms/iPhoneSimulator.platform/Developer/SDKs/ipHoneSimulator7.0.sdk
+XCODE_SDK ?= $(XCODE_DEVELOPER)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk
+STATICBUILD = 1
+HACKED_APPLY =
+
+# options
+
+# for Xcode 4:  C_COMPILER ?= $(XCODE_DEVELOPER)/Platforms/iPhoneOS.platform/iPhoneOS.platform/Developer/usr/bin
+C_COMPILER ?= $(XCODE_TOOLPATH)/gcc
+LIBRARIAN ?= $(XCODE_DEVELOPER)/Platforms/iPhoneOS.platform/Developer/usr/bin/ar
+C_COMPILER_OPTIONS ?= -no-cpp-precomp -fno-strict-aliasing -fwrapv -fno-common -DHAVE_CHICKEN_CONFIG_H -mno-thumb -isysroot $(XCODE_SDK) -arch $(ARCH)
+ifdef DEBUGBUILD
+C_COMPILER_OPTIMIZATION_OPTIONS ?= -g -Wall -Wno-unused
+else
+ifdef OPTIMIZE_FOR_SPEED
+C_COMPILER_OPTIMIZATION_OPTIONS ?= -O3 -fomit-frame-pointer
+else
+C_COMPILER_OPTIMIZATION_OPTIONS ?= -Os -fomit-frame-pointer
+endif
+endif
+LIBRARIAN_OPTIONS = scru
+ASSEMBLER_OPTIONS =
+LINKER_OPTIONS = -isysroot $(XCODE_SDK) -arch $(ARCH)
+
+# special files
+
+CHICKEN_CONFIG_H = chicken-config.h
+
+# select default and internal settings
+
+include $(SRCDIR)/defaults.make
+
+chicken-config.h: chicken-defaults.h
+	echo "/* GENERATED */" >$@
+	echo "#define HAVE_DIRENT_H 1" >>$@
+	echo "#define HAVE_INTTYPES_H 1" >>$@
+	echo "#define HAVE_LIMITS_H 1" >>$@
+	echo "#define HAVE_LONG_LONG 1" >>$@
+	echo "#define HAVE_MEMMOVE 1" >>$@
+	echo "#define HAVE_MEMORY_H 1" >>$@
+	echo "#define HAVE_POSIX_POLL 1" >>$@
+	echo "#define HAVE_SIGACTION 1" >>$@
+	echo "#define HAVE_SIGSETJMP 1" >>$@
+	echo "#define HAVE_SIGPROCMASK 1" >>$@
+	echo "#define HAVE_STDINT_H 1" >>$@
+	echo "#define HAVE_STDLIB_H 1" >>$@
+	echo "#define HAVE_STRERROR 1" >>$@
+	echo "#define HAVE_STRINGS_H 1" >>$@
+	echo "#define HAVE_STRING_H 1" >>$@
+	echo "#define HAVE_STRTOLL 1" >>$@
+	echo "#define HAVE_STRTOQ 1" >>$@
+	echo "#define HAVE_SYS_STAT_H 1" >>$@
+	echo "#define HAVE_SYS_TYPES_H 1" >>$@
+	echo "#define HAVE_UNISTD_H 1" >>$@
+	echo "#define HAVE_UNSIGNED_LONG_LONG 1" >>$@
+	echo "#define STDC_HEADERS 1" >>$@
+	echo "#define HAVE_ALLOCA 1" >>$@
+	echo "#define HAVE_ALLOCA_H 1" >>$@
+	echo "#define HAVE_GRP_H 1" >>$@
+	echo "#define HAVE_ERRNO