Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Feb 24 22:44
    Travis gambit/gambit (master) passed (1380)
  • Feb 24 22:05

    feeley on fix-deflib-macros

    (compare)

  • Feb 24 22:05

    feeley on master

    Fix macro definitions in define… Merge pull request #489 from ga… (compare)

  • Feb 24 22:05
    feeley closed #489
  • Feb 24 21:59
  • Feb 24 21:59
    Travis gambit/gambit@1001f20 (feeley/fix-deflib-macros) passed (1378)
  • Feb 24 21:19
    feeley opened #489
  • Feb 24 21:18

    feeley on fix-deflib-macros

    Fix macro definitions in define… (compare)

  • Feb 22 17:13
    lassik commented #488
  • Feb 22 17:05
    phillipwood commented #488
  • Feb 21 18:17
    feeley commented #488
  • Feb 21 16:49
    phillipwood commented #488
  • Feb 21 16:37
    feeley commented #488
  • Feb 21 16:25
    feeley commented #487
  • Feb 21 16:11
    phillipwood opened #488
  • Feb 21 14:30
    kaukas opened #487
  • Feb 20 18:03
    lassik opened #486
  • Feb 13 19:03
    lassik commented #410
  • Feb 11 18:08
    gassechen commented #485
  • Feb 11 17:34
    feeley commented #485
Marc-André Bélanger
@belmarca
OK, if you have some place to register the subject that could eliminate possible duplicates.
Marc-André Bélanger
@belmarca
something related that could help is publishing a roadmap or to-do list, other than the current github issues.
amirouche
@amirouche
the issues are good enough, maybe add some issues for the existing task with a help needed flag
I started working on the JavaScript backend, and keep updating the issue 404
The roadmap could be announced on the mailling list tho
Marc-André Bélanger
@belmarca
well for example I see there is issue #408
That one mentions the missing syntax-rules, however I wouldn't necessarily go looking for that information inside the r7rs issue
there is one project but it is dated 2017
amirouche
@amirouche
well that is true
maybe we should go through the whole R7RS and create table and flag features that are done and those that are missing
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