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
Marc-André Bélanger
@belmarca
from what I understand there should be discussion about this in october
amirouche
@amirouche
FWIW, I am willing to move to use gambit both in the frontend and backend...
even if the backend requires multi threads and gambit smp support is new
what I holding me back, was mostly the lack of R7RS library system
Marc-André Bélanger
@belmarca
why do you absolutely need smp?
amirouche
@amirouche
I build a database on top of wiredtiger which is embedded key-value store library, so I need queries not to block other queries.
Bradley Lucier
@gambiteer
@amirouche I did something like this using threads, but no smp.
Does using wiredtiger mean you need smp?
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