Robert Smiley | 30 Jun 03:26 2016
Picon

Asynchronous I/O Egg Release

Hello Chicken Users!

I have created an asynchronous I/O egg for chicken. Would it be possible to have it added to the egg-locations file in subversion?

And here is the url for the release-info file specifically.

https://github.com/yarnoiser/async-io/blob/master/async-io.realease-info

Hopefully this library will make it easier to read from and write to any file descriptor without leaving applications hanging, since all srfi-18 threads block when i/o is performed on ports other than tcp sockets.

This library's readers use simple parsers to retrieve completed tokens from input files as they become ready. It includes a parser for scheme expressions as well as messages which consist of a single line.

Hopefully this will be of use.

-Robert
_______________________________________________
Chicken-users mailing list
Chicken-users <at> nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users
Matt Welland | 21 Jun 12:51 2016
Picon

How to debug stack limit problem?

Using:

Version 4.11.0rc2 ((detached from 4.11.0rc2)) (rev e910197) linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ] compiled 2016-04-28 on waldrop (Linux)

I am seeing:

 dboard: runtime.c:2797: C_save_and_reclaim: Assertion `av > C_temporary_stack_bottom || av < C_temporary_stack_limit' failed.

I'll test with an older install of chicken tomorrow. In the mean time, can anyone suggest how I would go about debugging this issue?
_______________________________________________
Chicken-users mailing list
Chicken-users <at> nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users
Robert Smiley | 15 Jun 21:36 2016
Picon

Re: Coroutines and Finite State Machines Egg

Thanks for catching that, I did not realize my replies were not going to the mailing list. I've renamed the source file to cooperative.scm and made the necessary changes to the setup and release-info files. The release is now 0.1.1 and 0.1.0 has been removed from cooperative.release-info. Thanks for the feedback.

On Wed, Jun 15, 2016 at 12:46 PM, Mario Domenech Goulart <mario.goulart <at> gmail.com> wrote:
Hello Robert,

On Wed, 15 Jun 2016 12:33:35 -0600 Robert Smiley <yarnoiserdev <at> gmail.com> wrote:

> Oh. I read a tutorial a while back which showed giving the code an .
> import.scm extension as a way of allowing one to easily import code
> from the current directory when testing, be it interpreted or
> compiled. I didn't realize that was abnormal. Should I change it to
> have the .scm extension instead?

Yes, please.  You can use -J to make csc generate the import library
(which is usually compiled too).  Take a look at some eggs' .setup files
for examples.

Also note that you'll either have to move the current tag or create a
new one.  If you decide for the latter, please remove the 0.1.0 release
from .release-info.

P.S.: your message was not sent to the mailing list.  Don't know if it
was intentional or not.  In any case, feel free to reply to the list.

All the best.
Mario
--
http://parenteses.org/mario

_______________________________________________
Chicken-users mailing list
Chicken-users <at> nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users
Robert Smiley | 15 Jun 06:52 2016
Picon

Coroutines and Finite State Machines Egg

Hello everyone,

My name is Robert and I'm new around here.

I've recently created an egg out of some code I have written. The library's focus is cooperative multitasking using coroutines and finite state machines.

I understand this approach has drawbacks compared to srfi-18 (having to explicitly yield control), but I'm aware of some situations where these could be useful, such as in game engines.

The repo can be found here
https://github.com/yarnoiser/cooperative

This is url of the release info file specifically.
Would it be possible to have this added to the egg-locations file?

As I am quite inexperienced with writing libraries, I decided to err on the side of caution and mark the code as pre-release. Please let me know if you find bugs. I'm also open to feedback on the code itself (especially for improving the finite state machine macro).

I'll also be working on a chicken library for asynchronous i/o here
https://github.com/yarnoiser/async-io

Apart from that, hello chicken community. It's nice to meet you.

-Robert
_______________________________________________
Chicken-users mailing list
Chicken-users <at> nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users
Michael Silver | 14 Jun 17:09 2016
Picon
Picon

Module unresolved error

Hello,

I’m new to CHICKEN and I’m working on converting a large Guile codebase to CHICKEN. The codebase is a collection of shared libraries (each library in a separate .scm file), collectively known as “lab-core”. So, I’ve packaged it all as an egg called “lab-core” with each individual .scm file as it’s own module (under different names). Does this seem like a reasonable way to package such a project?

As I go file by file converting to CHICKEN modules, I keep running into “module unresolved” errors when attempting to install my egg via chicken-install.

Unfortunately, the output gives no indication of which function is causing the error or why, and the only way I’ve been able to figure this out is by commenting out chunks of code and narrowing down until I find the offending function. If I delete that function, the module compiles perfectly and I can use the rest of the functions just as you would expect. What does "module unresolved” mean and is there a better way to figure out what is causing it?

I’ve attached a MWE where loglevel is a stripped-down version of one such library causing the “module unresolved” error. Here are the steps to reproduce:
$ cd lab-core
lab-core$ chicken-install -debug
(see attached output.txt for the debug output)

Compare this to:
$ csi
> (load “loglevel-no-module.scm”)
> (err-puts "foo" 42 "!”)
foo42!
“!"
which shows my functions working perfectly as long as I’m not using module syntax.

Why would compiling into a module cause an error when my functions work fine in the REPL? Any help would be appreciated.

System information:
Ubuntu 14.04
Chicken Version 4.8.0.5 (stability/4.8.0) (rev 5bd53ac)
linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
compiled 2013-10-03 on aeryn.xorinia.dim (Darwin)
installed via sudo apt-get install chicken-bin

Thank you,

Michael

Attachment (lab-core.zip): application/zip, 1669 bytes

Attachment (loglevel-no-module.scm): application/octet-stream, 424 bytes

lab-core$ chicken-install -debug
retrieving ...
checking platform for `lab-core' ...
checking dependencies for `lab-core' ...
install order:
("lab-core")
installing lab-core: ...
changing current directory to .
  '/usr/bin/csi' -bnq -setup-mode -e "(require-library setup-api)" -e "(import setup-api)" -e
"(extension-name-and-version '(\"lab-core\" \"\"))" 'lab-core.setup'
  '/usr/bin/csc' -feature compiling-extension -setup-mode    loglevel.scm -shared
-optimize-leaf-routines -inline -output-file loglevel.so -emit-import-library loglevel

Warning: reference to possibly unbound identifier `string-chomp' in:
Warning:    port-puts

Warning: reference to possibly unbound identifier `with-output-to-string' in:
Warning:    port-puts

Error: module unresolved: loglevel

Error: shell command terminated with non-zero exit status 256: '/usr/bin/chicken' 'loglevel.scm'
-output-file 'loglevel.c' -dynamic -feature chicken-compile-shared -feature compiling-extension
-setup-mode -optimize-leaf-routines -inline -emit-import-library loglevel

Error: shell command failed with nonzero exit status 256:

  '/usr/bin/csc' -feature compiling-extension -setup-mode    loglevel.scm -shared
-optimize-leaf-routines -inline -output-file loglevel.so -emit-import-library loglevel

	Call history:

	setup-api.scm:276: display
	setup-api.scm:276: display
	write-char/port
	setup-api.scm:276: ##sys#flush-output
	setup-api.scm:277: $system
	setup-api.scm:831: system
	setup-api.scm:837: open-output-string
	setup-api.scm:837: display
	setup-api.scm:837: display
	write-char/port
	write-char/port
	write-char/port
	setup-api.scm:837: display
	setup-api.scm:837: display
	setup-api.scm:837: get-output-string
	setup-api.scm:836: error	  	<--

Error: shell command terminated with nonzero exit code
17920
"'/usr/bin/csi' -bnq -setup-mode -e \"(require-library setup-api)\" -e \"(import...

Attachment (smime.p7s): application/pkcs7-signature, 5223 bytes
_______________________________________________
Chicken-users mailing list
Chicken-users <at> nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users
Manuel Uberti | 1 Jun 12:49 2016

csc and syntax checking

Hi everybody,

those of you who were on the #chicken IRC yesterday may remember my cumbersome
tries with this. Since I am not always able to be on IRC all the time, I'll try
with a email.

I'm working on a syntax checker for Flycheck (on Emacs). Following Mario Goulart
tips, I am using this:

csc -A -M -P <filename.scm>

I've attached the files I am working on. As you can see, there's a main file
(stitchcounter.scm) and a unit (io-utils.scm).

If I do this:

csc -A -M -P stitchcounter.scm

I get this:

Warning: reference to possibly unbound identifier `get-num' in:
Warning:    pick
Warning:    option-2
Warning:    option-1

Error: module unresolved: main

Error: shell command terminated with non-zero exit status 256:
'/usr/local/bin/chicken' 'stitchcounter.scm' -output-file 'stitchcounter.c'
-analyze-only -module -check-syntax

I see 2 problems here:

- I don't understand the warnings: get-num is defined in io-utils.scm and
stitchcounter.scm uses it correctly (I can produce a binary compiling those 2 files)

- the Error terminated abruptly and so the syntax checker in Flycheck doesn't work

Any ideas?

Kind regards

--

-- 
Manuel Uberti
https://manuel-uberti.github.io

GPG fingerprint = 8702 9F53 2466 A6B5 E3F4 6B44 4E57 A6C4 CAA4 8F62
Attachment (io-utils.scm): text/x-scheme, 559 bytes
Attachment (stitchcounter.scm): text/x-scheme, 2165 bytes
_______________________________________________
Chicken-users mailing list
Chicken-users <at> nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users
Peter Bex | 28 May 15:47 2016
Picon

[ANN] CHICKEN 4.11.0 has been released

Dear CHICKEN users,

We are pleased to announce the immediate availability of CHICKEN 4.11.0
at the following URL:
https://code.call-cc.org/releases/4.11.0/chicken-4.11.0.tar.gz

This tarball has the following SHA256 checksum:
e3dc2b8f95b6a3cd59c85b5bb6bdb2bd9cefc45b5d536a20cad74e3c63f4ad89

This release introduces several large changes, the one with the most
impact being a completely new calling convention for compiled CPS
procedures in C code.  Instead of expecting "regular" C arguments,
the compiled C functions now accept a so-called "argvector" which
holds the arguments.  This should greatly improve the portability of
CHICKEN programs, because it relies less on ill-specified parts of C.
It also removes the assembly code required for manyargs, so that the
limitation of 128 arguments for platforms without an "apply hack" has
finally been removed.

On the tooling front we've also added two new features: a statistical
profiler for analysing performance, and a graphical debugger called
"feathers", which allows you to inspect your Scheme programs over the
network.  These have both been documented in the manual.  The debugger
has its own chapter at https://wiki.call-cc.org/man/4/Debugging and the
profiler's new -:p runtime option is documented at
https://wiki.call-cc.org/man/4/Using%20the%20compiler#runtime-options

As usual, many bugs have been fixed with this release, including several
bugs that would cause programs to crash.  All in all, this new release
should be much more robust and reliable.

For the complete list of changes since 4.10.0, see the NEWS file:
https://code.call-cc.org/releases/4.11.0/NEWS

After this release, the core team has decided to focus its efforts on
CHICKEN 5.  The 4.x series is still officially supported and will
continue to receive bugfixes for critical bugs.  If enough bugs have
been fixed, there may be a 4.12 release, but new feature development
is going to be exclusive to the 5 branch.

Regards,
The CHICKEN Team
_______________________________________________
Chicken-users mailing list
Chicken-users <at> nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users
Alex Shinn | 28 May 15:40 2016
Picon

Second CFP for Scheme and Functional Programming Workshop 2016

SECOND NOTICE
Call For Presentations

17th Annual Scheme and Functional Programming Workshop
WEBSITE: http://scheme2016.snow-fort.org/
LOCATION: Nara, Japan (Co-located with ICFP 2016)
DATE: 18 September 2016

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

The 2016 Scheme and Functional Programming Workshop is calling for
submissions.  This year we are accepting general presentation
proposals in addition to papers.

Submissions related to Scheme, Racket, Clojure, and functional
programming are welcome and encouraged. Topics of interest include
but are not limited to:

Program-development environments, debugging, testing
Implementation (interpreters, compilers, tools, benchmarks, etc.)
Syntax, macros, hygiene
Distributed computing, concurrency, parallelism
Probabilistic computing
Interoperability with other languages, FFIs
Continuations, modules, object systems, types
Theory, formal semantics, correctness
History, evolution and standardization of Scheme
Applications, experience and industrial uses of Scheme
Education
Scheme pearls (elegant, instructive uses of Scheme)

We also welcome submissions related to dynamic or multiparadigmatic
languages and programming techniques.

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

Important Dates:

24 June 2016 - Submissions deadline
22 July 2016 - Author notification
15 August 2016 - Camera-ready deadline
18 September 2016 - Workshop
All deadlines are 23:59 (UTC-12, "Anywhere on Earth").

Paper submissions must be in ACM proceedings format, no smaller than
9-point type (10-point type preferred). Microsoft Word and LaTeX
templates for this format are available at:
http://www.sigplan.org/Resources/Author/

Paper submissions should be in PDF and printable on US Letter, and
generally in the range of 6 to 12 pages.

Presentation submissions should include an outline of the material.
Talks are 40 minutes, including questions and answers.

More information available at: http://scheme2016.snow-fort.org/

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

Organizers:

Alex Shinn (general chair)
Kathy Gray (program chair)

(Apologies for duplications from cross-posting.)
publicityifl | 24 May 21:13 2016
Picon

1st CfP: IFL 2016 (28th Symposium on Implementation and Application of Functional Languages)

Hello,

Please, find below the first call for papers for IFL 2016.
Please forward these to anyone you think may be interested.
Apologies for any duplicates you may receive.

best regards,
Jurriaan Hage
Publicity Chair of IFL

---

IFL 2016 - Call for papers

28th SYMPOSIUM ON IMPLEMENTATION AND APPLICATION OF FUNCTIONAL LANGUAGES - IFL 2016

KU Leuven, Belgium

In cooperation with ACM SIGPLAN

August 31 - September 2, 2016

https://dtai.cs.kuleuven.be/events/ifl2016/

Scope

The goal of the IFL symposia is to bring together researchers actively engaged
in the implementation and application of functional and function-based
programming languages. IFL 2016 will be a venue for researchers to present and
discuss new ideas and concepts, work in progress, and publication-ripe results
related to the implementation and application of functional languages and
function-based programming.

Peer-review

Following the IFL tradition, IFL 2016 will use a post-symposium review process
to produce the formal proceedings. All participants of IFL 2016 are invited to
submit either a draft paper or an extended abstract describing work to be
presented at the symposium. At no time may work submitted to IFL be
simultaneously submitted to other venues; submissions must adhere to ACM
SIGPLAN's republication policy:

http://www.sigplan.org/Resources/Policies/Republication

The submissions will be screened by the program committee chair to make sure
they are within the scope of IFL, and will appear in the draft proceedings
distributed at the symposium. Submissions appearing in the draft proceedings
are not peer-reviewed publications. Hence, publications that appear only in the
draft proceedings are not subject to the ACM SIGPLAN republication policy.
After the symposium, authors will be given the opportunity to incorporate the
feedback from discussions at the symposium and will be invited to submit a
revised full article for the formal review process. From the revised
submissions, the program committee will select papers for the formal
proceedings considering their correctness, novelty, originality, relevance,
significance, and clarity. The formal proceedings will appear in the
International Conference Proceedings Series of the ACM Digital Library.

Important dates

August 1: Submission deadline draft papers
August 3: Notification of acceptance for presentation
August 5: Early registration deadline
August 12: Late registration deadline
August 22: Submission deadline for pre-symposium proceedings
August 31 - September 2: IFL Symposium
December 1: Submission deadline for post-symposium proceedings
January 31, 2017: Notification of acceptance for post-symposium proceedings
March 15, 2017: Camera-ready version for post-symposium proceedings

Submission details

Prospective authors are encouraged to submit papers or extended abstracts to be
published in the draft proceedings and to present them at the symposium. All
contributions must be written in English. Papers must use the new ACM two
columns conference format, which can be found at:

http://www.acm.org/publications/proceedings-template

For the pre-symposium proceedings we adopt a 'weak' page limit of 12 pages. For
the post-symposium proceedings the page limit of 12 pages is firm.

Authors submit through EasyChair:

https://easychair.org/conferences/?conf=ifl2016

Topics

IFL welcomes submissions describing practical and theoretical work as well as
submissions describing applications and tools in the context of functional
programming. If you are not sure whether your work is appropriate for IFL 2016,
please contact the PC chair at tom.schrijvers <at> cs.kuleuven.be. Topics of interest include,
but are not limited to:

- language concepts
- type systems, type checking, type inferencing
- compilation techniques
- staged compilation
- run-time function specialization
- run-time code generation
- partial evaluation
- (abstract) interpretation
- metaprogramming
- generic programming
- automatic program generation
- array processing
- concurrent/parallel programming
- concurrent/parallel program execution
- embedded systems
- web applications
- (embedded) domain specific languages
- security
- novel memory management techniques
- run-time profiling performance measurements
- debugging and tracing
- virtual/abstract machine architectures
- validation, verification of functional programs
- tools and programming techniques
- (industrial) applications

Peter Landin Prize

The Peter Landin Prize is awarded to the best paper presented at the symposium
every year. The honored article is selected by the program committee based on
the submissions received for the formal review process. The prize carries a
cash award equivalent to 150 Euros.

Programme committee

Chair: Tom Schrijvers, KU Leuven, Belgium

- Sandrine Blazy, University of Rennes 1, France
- Laura Castro, University of A Coruña, Spain
- Jacques, Garrigue, Nagoya University, Japan
- Clemens Grelck, University of Amsterdam, The Netherlands
- Zoltan Horvath, Eotvos Lorand University, Hungary
- Jan Martin Jansen, Netherlands Defence Academy, The Netherlands
- Mauro Jaskelioff, CIFASIS/Universidad Nacional de Rosario, Argentina
- Patricia Johann, Appalachian State University, USA
- Wolfram Kahl, McMaster University, Canada
- Pieter Koopman, Radboud University Nijmegen, The Netherlands
- Shin-Cheng Mu, Academia Sinica, Taiwan
- Henrik Nilsson, University of Nottingham, UK
- Nikolaos Papaspyrou, National Technical University of Athens, Greece
- Atze van der Ploeg, Chalmers University of Technology, Sweden
- Matija Pretnar, University of Ljubljana, Slovenia
- Tillmann Rendel, University of Tübingen, Germany
- Christophe Scholliers, Universiteit Gent, Belgium
- Sven-Bodo Scholz, Heriot-Watt University, UK
- Melinda Toth, Eotvos Lorand University, Hungary
- Meng Wang, University of Kent, UK
- Jeremy Yallop, University of Cambridge, UK

Venue

The 28th IFL will be held in association with the Faculty of Computer Science,
KU Leuven, Belgium. Leuven is centrally located in Belgium and can be easily
reached from Brussels Airport by train (~15 minutes). The venue in the
Arenberg Castle park can be reached by foot, bus or taxi from the city center.
See the website for more information on the venue.
_______________________________________________
Chicken-users mailing list
Chicken-users <at> nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users
Kristian Lein-Mathisen | 24 May 11:25 2016
Gravatar

extension loading in sqlite3 egg


Hi guys!

I wanted to use Spatialite with CHICKEN and though I'd use the sqlite3 egg. However, I quickly ran into a problem:

(execute db "select load_extension(\"mod_spatialite\");")
Error: (finalize!) not authorized: #<sqlite3:statement sql="">

Call history:

ff-testing.scm:1: ##sys#require  
type-checks.scm:54: ##sys#require  
sql-null.scm:14: constantly  
ff-testing.scm:3: sqlite3#open-database  
ff-testing.scm:7: sqlite3#first-row  
ff-testing.scm:7: print  
ff-testing.scm:9: sqlite3#execute   <--

In the sqlite3 command-line, this works fine. The solution was to enable extension loading which is not allowed by default: https://www.sqlite.org/c3ref/enable_load_extension.html

However, this Sqlite3 function isn't available in the egg. Here's a rather trivial patch that adds it:

diff --git a/sqlite3.scm b/sqlite3.scm
index dd7f35f..ce039da 100644
--- a/sqlite3.scm
+++ b/sqlite3.scm
<at> <at> -69,6 +69,7 <at> <at>
     database-memory-used
     database-memory-highwater
     enable-shared-cache!
+    enable-load-extension
   )
 
 (import scheme chicken foreign)
<at> <at> -1034,4 +1035,7 <at> <at> EOS
      [else
       enable?])]))
 
+(define (enable-load-extension db enable?)
+  ((foreign-lambda sqlite3:status "sqlite3_enable_load_extension" sqlite3:database bool) db enable?))
+
 )

Which now makes

(enable-load-extension db #t)
(execute db "select load_extension(\"mod_spatialite\");")

Work like a charm.

I'm not sure how to get this patch upstream. I don't think I have SVN access. So I was hoping the current sqlite3 maintainer wouldn't mind fixing this (eyes on you Thomas Chust! :D)!

Thank you,
K.
_______________________________________________
Chicken-users mailing list
Chicken-users <at> nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users
Christian Kellermann | 23 May 09:41 2016
Gravatar

Invitation to a weekend of scheme/lisp hacking

Dear picolisp readers,

As some of you know I am an active member of the CHICKEN scheme
community. For that I am organising a little "conference" / gathering
of interested scheme and lisp users in Nuremberg, Germany on September
23rd-25th.

As there's plenty of room available I broadened the invitation scope
to all interested schemers and lispers.

So if you want to be able to hack on a picolisp project and discuss
lispy stuff with other people afk you are invited to drop by.

I'd appreciate it if you add yourself to the list of attendees, so I
know how many people to expect. If you like drop me a mail so I can
reach you should there be some changes in plans.

You can read up the details here:

http://wiki.call-cc.org/event/chicken-summer-2016

Hope to see a lot of you there!

Christian

--
May you be peaceful, may you live in safety, may you be free from
suffering, and may you live with ease.

Gmane