Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Apr 05 12:17
    Travis gambit/gambit (master) passed (1439)
  • Apr 05 11:54
    Travis gambit/gambit (master) passed (1438)
  • Apr 05 11:40

    feeley on master

    Make tcp-service-register! retu… (compare)

  • Apr 05 11:18

    feeley on master

    Don't force output on exit of f… (compare)

  • Apr 02 13:40

    feeley on keep-temp-fix

    (compare)

  • Apr 02 05:04
    Travis gambit/gambit (master) passed (1437)
  • Apr 02 04:28
    Travis gambit/gambit@a4813be (feeley/enable-targets) passed (1435)
  • Apr 02 04:27
  • Apr 02 03:55

    feeley on enable-targets

    (compare)

  • Apr 02 03:55

    feeley on master

    Universal backend: add --enable… Merge pull request #516 from ga… (compare)

  • Apr 02 03:55
    feeley closed #516
  • Apr 02 03:51
    feeley opened #516
  • Apr 02 03:51

    feeley on enable-targets

    Universal backend: add --enable… (compare)

  • Apr 01 14:19
    Travis gambit/gambit@9dcc8a8 (feeley/keep-temp-fix) passed (1433)
  • Apr 01 14:18
    Travis gambit/gambit (master) passed (1434)
  • Apr 01 13:28

    feeley on master

    Fix gsc -keep-temp option Merge pull request #515 from ga… (compare)

  • Apr 01 13:28
    feeley closed #515
  • Apr 01 13:18
    feeley opened #515
  • Apr 01 13:18

    feeley on keep-temp-fix

    Fix gsc -keep-temp option (compare)

  • Mar 28 00:02
    gambiteer commented #514
amirouche
@amirouche
@gambiteer what is the difference between smp and threads? I was under the impression that thread in gambit were different from POSIX threads.
I need that one "thread" doesn't block other threads, as concurrency issues are dealt with by wiredtiger.
Marc Feeley
@feeley
@amirouche where is the blocking happening? if it is on a file descriptor then Gambit's green threads will be sufficient because the thread scheduler multiplexes the CPU so that Scheme threads waiting on a fd are put to sleep without blocking other threads. Scheme-level mutexes and condition variables also don't block other threads than the one blocking.
amirouche
@amirouche
the blocking call happen on ffi call
the main resource used is cpu
Marc Feeley
@feeley
I'm not sure what you mean with that. I'm asking to know what the OS thread is blocking on (reading a fd, locking a mutex, etc). I don't know how wiredtiger is implemented.
amirouche
@amirouche
wiredtiger is implemented in C, the scheme code is blocking on C calls
Marc Feeley
@feeley
in that case, a possible approach is to allocate an OS thread with each Scheme thread, and have the OS thread do the calls to wiredtiger, and to communicate with the OS thread through a pipe... it is not as complex as it sounds
amirouche
@amirouche
IIUC a pipe is two ports?
Marc Feeley
@feeley
I mean an OS pipe (which has two ends). Ask @jazzscheme who has used this for streaming audio/video with separate OS threads.
Guillaume Cartier
@jazzscheme
My first implementation was as Marc said to spawn an OS thread (a pthread in my case) and have the thread communicate “completion” by sending 1 byte down a named pipe. The named pipe is only read on the Gambit side where the Gambit thread will be blocked and only written on the C side. Later on, when porting to Windows where named pipes are a bit different and touchy to use, I tried replacing the named pipes by TCP sockets and tests showed performance to be identical as the OS clearly optimizes the special case of same machine (in this case even same process) communication. All this works very well for my needs and with it I can now play 80 movies at the same time on my mac (160 Gambit threads blocked on receiving codec data).
amirouche
@amirouche
tx
Phiroc
@Phiroc
Hi Marc, I've noticed a few bugs in Not Emacs on iOS. Among others, there's no way to close the initial Help Window, you can't quit Scheme (pressing Ctrl-D several times doesn't work), and "yank from operating system" displays a window into which you can't paste text from other iOS applications. Furthermore, being able to open files from iCloud or DropBox would be a bonus. If I were a C/iOS programmer, I could probably fix those bugs myself, but I'm not. Can you help? Many thanks. Cheers, P
Hi, has anyone ever tried "spawn" on iOS? If so, was it stable?
Phiroc
@Phiroc
PS Not Emacs is cool, and I find it useful as a text editor on iOS.
Guillaume Cartier
@jazzscheme
Does anyone know of any library / code in Gambit (or even in some other Scheme implementation that I could port) that do compression / decompression in pure Scheme code without depending on an external library like zlib?
Marc Feeley
@feeley
@Phiroc I agree that NotEmacs could be improved and has some rough spots. The code is completely open and I would hope that someone else jump in an go ahead with improvements and fixes. My dev time is mainly focused on Gambit currently so I have no time to spend on it.
@jazzscheme Yes there's a zlib implementation in pure Scheme in the bigloo source code. I used that to make a zlib snow ball many years ago. And now I've revived the code for the next release of Gambit. I also have a tar module.
Guillaume Cartier
@jazzscheme
@feeley Wonderful! Do you have a "Gambit-ish” optimized version that you could send me?
Guillaume Cartier
@jazzscheme
Gambit’s website is having difficulties
Warning: require_once(/Users/gambit/Sites/wiki/skins/.php) [function.require-once]: failed to open stream: No such file or directory in /Users/gambit/Sites/wiki/includes/Skin.php on line 144
Marc Feeley
@feeley
should be fixed now
John Cowan
@johnwcowan
@jazzscheme But can you watch 80 movies simultaneously?
Marc-André Bélanger
@belmarca
@johnwcowan I also wondered what is the purpose of such software :laughing: Probably streaming.
Guillaume Cartier
@jazzscheme
:) lol. It’s a video conference software. So the 80 movies was just a way to have a feel of what the largest number of participants could be in term of performance of audio and video, ignoring bandwidth (it was a local machine test)
Marc Feeley
@feeley
The Gambit at 30 meeting will be October 12-13. Please register ASAP and tell your friends! https://mailman.iro.umontreal.ca/pipermail/gambit-list/2019-September/009152.html
jaimef-castlight
@jaimef-castlight
@amirouche how far along are you with wiredtiger support?
amirouche
@amirouche
I did not start. Why?
Oberheim
@ober
std/srfi/14#char-set-contains? -- (Argument 2) Out of range (string-ref "\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x1;\x1;\x1;\x1;\x1;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x1;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0;\x0... 8230)
assuming slack handing out non-valid unicode values again?
Oberheim
@ober
@amirouche I was looking at adding support to gerbil for wiredtiger. thus the question.
amirouche
@amirouche
I will not do it in the foreseeable future. Maybe Gambit 30 will change things
Marc-André Bélanger
@belmarca
@amirouche Gambit 30, are we skipping 5.0 ? :laughing:
Paul Whittington
@pwhittin
Gambit and Scheme newb here, although I've been programming in Clojure for several years now. While reading "Tour of Scheme in Gambit" I tried to pust "(module hello)" in a .scm file, and load it with gsi. It gives me an unbound variable error noting "module". How does one use "module" and "use"?
targit
@targit
@pwhittin Gambitscheme.org is not reachable for me ATM, but from memory i think "Tour of Scheme in Gambit" talked about the "Blackhole" module system. It was never part of gambit (bundled within the gambit repo) and i think it can be considered phased out / deprecated. AFIK your current options for a module-system with gambit (besides using "load" and "include" and thus managing everything, especially dependencies, by hand) is use either the gerbil dialect or the newly but not fully documented built-in module system which is documented in the info-page. I you can wait a little bit, i think the r7rs module system will be released for gambit soon. No promises here, it's just that Marc indicated something like this.
Paul Whittington
@pwhittin
Thanks!
Marc-André Bélanger
@belmarca
I'm trying to use syntax-case but it seems datum->syntax is not defined
*** ERROR -- Unbound variable: sc#datum->syntax
loading it with (##include "~~/lib/syntax-case.scm")
targit
@targit
@belmarca I think it is: (include "~~lib/_syntax.scm")
marcoroque
@marcoroque
Hello All, this semester I am taking a class on programming languages and we are using gambit. we use gambit through our schools server via putty. I understand enough of emacs in order to work on my code. However, I wanted to edit my code in my preferred text editor and then just run the code through cmd. So I installed gambit and it installed properly but whenever I try to run my code using gsi [insert file name].scm a window flashes for a second and then disappears. Is there anyway that I can get the window to stay open or is there a way I can just get the code to run in terminal like when I run a c++ program?
marcoroque
@marcoroque
never mind, it works when I use cmd but not through the terminal in Atom
Marc Feeley
@feeley

I assume you are on Windows. There are a few options, the simplest is probably using the -:d- switch, as in:

gsi -:d- program.scm

This forces the REPL to be on stdin/stdout.

Another way is:
gsi program.scm -e "(read)"
Are you using gsi from the Windows command prompt window or from a MSYS shell window?
Marc Feeley
@feeley
Also I'm curious, which college or university are you at and which course is it?
Marc-André Bélanger
@belmarca
@targit I get the same error.
Marc-André Bélanger
@belmarca
@marcoroque gsi file.scm - will leave you in a repl
targit
@targit
@belmarca Strange, on my system i get the same error as you got when including "syntax-case.scm" but no error when including "_syntax.scm". My stupid testcase ```(include "~~lib/_syntax.scm")
Marc-André Bélanger
@belmarca
now with-syntax is not defined... weird