Second Call for Participation: ICFP 2020

2020-08-06 Thread Sam Tobin-Hochstadt
=

 Second Call for Participation

  ICFP 2020
 25th ACM SIGPLAN International Conference on Functional Programming
and affiliated events

 August 23 - August 28, 2020
Online
  http://icfp20.sigplan.org/

  Early Registration ends August 8!



ICFP provides a forum for researchers and developers to hear
about the latest work on the design, implementations, principles, and
uses of functional programming. The conference covers the entire
spectrum of work, from practice to theory, including its peripheries.

Watch our new video, and Don't Stop ICFP: 
https://www.youtube.com/watch?v=Fte5wwnwCws

Early Registration ends August 8th! Registration for students with an
ACM or SIGPLAN membership is free, and anyone can apply for a fee
waiver at:
https://icfp20.sigplan.org/attending/Registration

This year, the conference will be a virtual event. All activities will
take place online. 

The main conference will take place from August 24-26, 2020 during two
time bands. The first band will be 9AM-5:30PM New York, and will
include both technical and social activities.  The second band will
repeat (with some variation) the technical program and social
activities 12 hours later, 9AM-5:30PM Beijing, the following day.

We've written a blog post about how conference mirroring will work for
ICFP: https://blog.sigplan.org/2020/08/04/come-to-virtual-icfp/

We’re excited to announce our two invited speakers for 2020: Evan
Czaplicki, covering the Elm programming language and hard lessons
learned on driving adoption of new programming languages; and Audrey
Tang, Haskeller and Taiwan’s Digital Minister, on how software
developers can contribute to fighting the pandemic.

ICFP has officially accepted 37 exciting papers, and (as a fresh
experiment this year) there will also be presentations of 8 papers
accepted recently to the Journal of Functional Programming. Co-located
symposia and workshops will take place the day before and two days
immediately after the main conference.

Registration is now open. The early registration deadline is August
8th, 2020.  Registration is not free, but is significantly lower than
usual. Students who are ACM or SIGPLAN members may register for FREE
before the early deadline.

https://regmaster.com/2020conf/ICFP20/register.php

New this year: Attendees will be able to sign-up for the ICFP
Mentoring Program (either to be a mentor, receive mentorship or both).


  * Overview and affiliated events:
http://icfp20.sigplan.org/home

  * Full Schedule:
https://icfp20.sigplan.org/program/program-icfp-2020

  * Accepted papers:
http://icfp20.sigplan.org/track/icfp-2020-papers#event-overview

  * JFP Talks:
https://icfp20.sigplan.org/track/icfp-2020-jfp-talks#event-overview

  * Registration is available via:
https://regmaster.com/2020conf/ICFP20/register.php
Early registration ends 8 August, 2020.

  * Programming contest:
https://icfpcontest2020.github.io/

  * Student Research Competition:
https://icfp20.sigplan.org/track/icfp-2020-Student-Research-Competition

  * Follow us on Twitter for the latest news:
http://twitter.com/icfp_conference

This year, there are 10 events co-located with ICFP:

  * Erlang Workshop (8/23)
  * Haskell Implementors' Workshop (8/28)
  * Haskell Symposium (8/27-8/28)
  * Higher-Order Programming with Effects (8/23)
  * miniKanren Workshop (8/27)
  * ML Family Workshop (8/27)
  * OCaml Workshop (8/28)
  * Programming Languages Mentoring Workshop (8/23)
  * Scheme Workshop (8/28)
  * Type-Driven Development (8/23)
  
### ICFP Organizers

General Chair: Stephanie Weirich (University of Pennsylvania, USA)
Program Chair: Adam Chlipala (MIT, USA)

Artifact Evaluation Co-Chairs: Brent Yorgey (Hendrix College, USA)
   Ben Lippmeier (Ghost Locomotion, Australia)
Industrial Relations Chair: Alan Jeffrey (Mozilla Research, USA)
Programming Contest Organizer: Igor Lukanin (Kontur, Russia)
Publicity and Web Chair: Sam Tobin-Hochstadt (Indiana University, USA)
Student Research Competition Chair: Youyou Cong (Tokyo Institute of Technology, 
Japan)
Workshops Co-Chair: Jennifer Hackett (University of Nottingham, UK)
Leonidas Lampropoulos (University of Pennsylvania, USA)
Video Chair: Leif Andersen (Northeastern University, USA)
Student Volunteer Co-Chair: Hanneli Tavante (McGill University, Canada)
Victor Lanvin (IRIF, Université Paris Diderot, 
France)



Re: How to select a c compiler for chicken-install

2020-08-06 Thread Mario Domenech Goulart
Hi Andrew,

On Thu, 6 Aug 2020 10:34:10 -0500 Andrew Eggenberger 
 wrote:

> I used a gcc from macports to build and install chicken 5.2 from
> source on macosx. I'd like chicken-install to use the same c compiler
> for egg installation but it defaults to the xcode c compiler. I've
> tried numerous environment variables and options to no avail. Is there
> a way to set this manually?

You can specify the C compiler via the CSC_OPTIONS environment
variable.  Example:

$ CSC_OPTIONS="-cc the-c-compiler -ld the-linker -verbose" chicken-install 
-verbose the-egg 

You might also want to set the linker.  For that you can use the -ld
flag for csc.

The -verbose flags are optional, but might be helpful to see what
happens during the egg installation process.

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



Re: How to select a c compiler for chicken-install

2020-08-06 Thread alice maz
set C_COMPILER in config.make and rebuild. I use this to do dev builds with 
clang and just checked that it does make chicken-install use the same compiler

if you've already tried this and it didn't work, run `make spotless` and 
`chicken-install -purge` and try again. the eggname.build.sh scripts that 
chicken-install generates define CHICKEN_CC based on whatever's hardcoded in 
chicken-config.h, so if there's old files from a previous build remaining they 
could be getting in the way

-alice


On Thu, Aug 6, 2020, at 10:34, Andrew Eggenberger wrote:
> I used a gcc from macports to build and install chicken 5.2 from source on 
> macosx. I'd like chicken-install to use the same c compiler for egg 
> installation but it defaults to the xcode c compiler. I've tried numerous 
> environment variables and options to no avail. Is there a way to set this 
> manually?
> 
> *Andrew*


How to select a c compiler for chicken-install

2020-08-06 Thread Andrew Eggenberger
I used a gcc from macports to build and install chicken 5.2 from source on
macosx. I'd like chicken-install to use the same c compiler for egg
installation but it defaults to the xcode c compiler. I've tried numerous
environment variables and options to no avail. Is there a way to set this
manually?

*Andrew*


Re: Using a pipe in chicken 5

2020-08-06 Thread Mark Fisher
On Thu, 6 Aug 2020 at 12:47, Peter Bex  wrote:
> It looks like you swapped the meaning of in and out; you are trying to
> open the "out" descriptor for reading by converting it to an input port.
>
> Try this instead:
>
> (import (chicken process))
> (import (chicken file posix))
> (import srfi-18)
>
> (let-values ([(in out) (create-pipe)])
>   (print " in: " in)
>   (print "out: " out)
>   (let ([p-in (open-input-file* in)])
> (thread-wait-for-i/o! in #:input)
> (let ([data (read p-in)])
>   (print "data: " data

Thanks Peter, I'd just worked that out locally and was trying to work
out how to reply to the mailing list!

I took the original code from
http://pestilenz.org/~ckeen/blog/posts/callbacks.html which does use
out as the input, and it makes sense because it's communicating with
some C code to push data to the "in" and reads it on the "out" from
scheme.
I think maybe pipes used to be bidirectional.
Looking at the FDs on the file-system, the permissions are "r" on IN
fd and "w" on OUT fd.
I vaguely wonder if changing them both to be r/w would also fix the issue.

However, I'm happy to have it working, so thanks for your response!

Mark



Re: Using a pipe in chicken 5

2020-08-06 Thread Peter Bex
On Thu, Aug 06, 2020 at 12:01:40PM +0100, Mark Fisher wrote:
> Hi Chicken Users,
> 
> I'm a new user of chicken, and am using it to learn scheme.

Hello and welcome, Mark!

> I've got an issue with using pipes.
> >From various sources I've created the following example, but when run
> I get an exception.
> 
> ;; example.scm
> (import (chicken process))
> (import (chicken file posix))
> (import srfi-18)
> 
> (let-values ([(in out) (create-pipe)])
>   (print " in: " in)
>   (print "out: " out)
>   (let ([p-out (open-input-file* out)])
> (thread-wait-for-i/o! out #:input)
> (let ([data (read p-out)])
>   (print "data: " data

It looks like you swapped the meaning of in and out; you are trying to
open the "out" descriptor for reading by converting it to an input port.

Try this instead:

(import (chicken process))
(import (chicken file posix))
(import srfi-18)

(let-values ([(in out) (create-pipe)])
  (print " in: " in)
  (print "out: " out)
  (let ([p-in (open-input-file* in)])
(thread-wait-for-i/o! in #:input)
(let ([data (read p-in)])
  (print "data: " data


Cheers,
Peter


signature.asc
Description: PGP signature


Using a pipe in chicken 5

2020-08-06 Thread Mark Fisher
Hi Chicken Users,

I'm a new user of chicken, and am using it to learn scheme.
I've got an issue with using pipes.
>From various sources I've created the following example, but when run
I get an exception.

;; example.scm
(import (chicken process))
(import (chicken file posix))
(import srfi-18)

(let-values ([(in out) (create-pipe)])
  (print " in: " in)
  (print "out: " out)
  (let ([p-out (open-input-file* out)])
(thread-wait-for-i/o! out #:input)
(let ([data (read p-out)])
  (print "data: " data

When I run this, it throws an error:

> (open-input-file*) cannot open file - Invalid argument: 4

If I drop the (open-input-file*) to just (let ([p-out out])
the program runs, but putting any data into either end of the pipe, it
never causes the thread to continue, so I don't get any data.

I'm compiling with:
> csc example.scm

I'm sure the pipe is being created, as I can see fds under
/prod//fd/* and am able to read / write both ends of the pipe on
the command line with:

> IN_FD="/proc/$(ps -ef | grep '[e]xample' | awk '{print $2}')/fd/3"
> OUT_FD="/proc/$(ps -ef | grep '[e]xample' | awk '{print $2}')/fd/4"
> echo "test" > $IN_FD  # I would expect this to trigger the application to 
> display the data
> cat $OUT_FD  # displays "test" in shell

and vice versa, but still my application hangs on the
(thread-wait-for-i/o!) line.

The documentation
(http://api.call-cc.org/5/doc/chicken/file/posix#sec:open-input-file.2a)
for (open-input-file*) says:

> "Opens file for the file-descriptor fileno for input or output and returns a 
> port. fileno should be a positive exact integer"

but instead, i'm getting an error that the argument is invalid.

What am I doing wrong?

Thanks.