Joe Groff
cf1f0c2d27
unix.signals: documentation and metadata
2011-11-08 23:12:10 -08:00
Joe Groff
5d81e6e2f0
vm: make signal pipe nonblocking
...
On the off chance the Factor end of the signal handler mechanism isn't listening, we don't want to tie up the VM because the pipe's buffer got full.
2011-11-08 22:07:22 -08:00
Joe Groff
37f47e093a
tools.profiler.sampling: top-down-max-depth report
...
Fixes #366
2011-11-08 14:35:25 -08:00
Joe Groff
a4c011240b
tools.profiler.sampling: change some names around
...
Rename the versions of top-down etc. that take sample data to "top-down*" (from "(top-down)") so they don't look so scary to use. Change "get-raw-profile-data" to "most-recent-profile-data".
2011-11-08 14:11:53 -08:00
Joe Groff
2f0efb62e8
vm: don't send foreign samples to outer space
2011-11-08 14:00:33 -08:00
John Benediktsson
48205fcb63
deques: adding ?peek-front and ?peek-back.
2011-11-08 13:20:56 -08:00
Joe Groff
70dcd875ff
io.backend: start signal thread after io-backend
...
The c-io-backend can't handle input-ports and raises an error during bootstrap.
2011-11-08 11:54:54 -08:00
Joe Groff
fca09f21ed
vm: don't pass this to safepoint constructor
...
It's bad juju and MSVC calls us out on it.
2011-11-08 11:06:00 -08:00
Joe Groff
afa0ed1f6e
unix.process: take raise from unix.ffi
...
And fix introduced ambiguity between unix.ffi:kill and unix.process:kill
2011-11-08 10:42:51 -08:00
Joe Groff
37494b301b
new module unix.signals: app-level signal handlers
...
example:
IN: scratchpad USING: unix.ffi unix.signals ;
Loading resource:basis/unix/signals/signals.factor
IN: scratchpad [ V{ "Me not that kind of orc!" "Me busy, leave me alone!" "Work work" "Zug zug" } pop print flush ] SIGINFO add-signal-handler
IN: scratchpad load: 0.60 cmd: factor 41541 running 0.28u 0.16s
Zug zug
load: 0.71 cmd: factor 41541 running 0.28u 0.16s
Work work
load: 0.71 cmd: factor 41541 running 0.28u 0.16s
Me busy, leave me alone!
load: 0.73 cmd: factor 41541 running 0.28u 0.16s
Me not that kind of orc!
2011-11-08 10:21:49 -08:00
Joe Groff
7a7b19a8fd
vm: more commentary on lock_console() stuff
2011-11-08 08:52:52 -08:00
Joe Groff
ec85bf7acc
io.backend.unix: startup hook for signal-pipe
2011-11-08 08:42:48 -08:00
Joe Groff
7df1c228bd
vm: don't mask SIGTTIN from stdin_loop
...
Fixes #360
2011-11-08 08:42:48 -08:00
Joe Groff
b3598c2384
io.backend.unix: init-signal-pipe function
...
Currently just reads off signal numbers and drops them.
2011-11-08 08:42:48 -08:00
Joe Groff
75f9904c40
vm: interrupt stdin_loop when entering fep
...
The stdin_loop thread will keep trying to consume input unless we stop it by sending it a signal. Use SIGUSR2 to stop the read syscall and a mutex to hold up the loop while the fep is active.
2011-11-08 08:42:48 -08:00
Joe Groff
0c132cf861
vm: write signals to pipe immediately
...
The whole point is to wake up the mx without waiting for the next safepoint derp
2011-11-08 08:42:47 -08:00
Joe Groff
2db8dd3f80
vm: move bignum.cpp includes to master.hpp
...
That way they get PCHed
2011-11-08 08:42:47 -08:00
Joe Groff
06bb122b6e
vm: enqueue signals for FEP signals too
...
Although SIGINT still can't interrupt the current Factor thread in a sane way, this will at least wake up the run loop when waiting for input and fix #348 when implemented at the application level.
2011-11-08 08:42:47 -08:00
Joe Groff
0db777edbb
GNUmakefile: use PCH so compiler goes faster
...
Also add more accurate dependencies on headers so "make" works right when headers change
2011-11-08 08:42:46 -08:00
Joe Groff
ceeb9f36d8
vm: write async signals to pipe for multiplexer
...
also factor out safepoint logic into its own file
2011-11-08 08:42:46 -08:00
Joe Groff
1583b94bf9
io.launcher.windows: update tests for prompt
2011-11-08 00:09:25 -08:00
Joe Groff
9c055136a7
vm: switch atomic::add to atomic::fetch_add
...
Win32 only provides fetch-and-add, not add-and-fetch, and we don't really care. Rename the functions so the order of operations is clear.
2011-11-07 17:58:53 -08:00
Joe Groff
c79ef17deb
lists: make lmap behave row-polymorphically
...
Fix contributed by @bremac. Fixes #355 .
2011-11-07 10:37:35 -08:00
Doug Coleman
cb66728b26
compiler.cfg: Change low-level IR constructors from ##foo to <##foo>
2011-11-06 23:02:46 -08:00
Doug Coleman
1a2be52f25
compiler.tree: Renamed high-level IR node constructors to <#foo> from #foo. Moving towards making classes/word names not conflict.
2011-11-06 23:02:45 -08:00
Joe Groff
04a3c88227
vm: readable feps for more types
2011-11-06 20:26:52 -08:00
Joe Groff
dadc8a3baa
vm: print type names instead of numbers in fep
2011-11-06 20:26:51 -08:00
Doug Coleman
5877dc3640
lint: Add a word to find redundant word props like 'inline [flushable|foldable]'
2011-11-06 19:33:07 -08:00
Doug Coleman
dde0599353
math.functions: flushable and foldable don't do anything on inline words because flushable and foldable work on call sites (#call nodes), and inlined words are inlined into another word's call site; they don't generate their own #call node.
2011-11-06 19:25:53 -08:00
Doug Coleman
1539682597
compiler.tree.dead-code: Rewrite /mod to /i or mod in the dead-code pass in the high level optimizer. Fixes #279 .
2011-11-06 19:23:26 -08:00
Joe Groff
830a7f7100
tools.deploy.backend: fix vocab manifest parse
...
We were absent-mindedly passing the VOCABS: line off as a vocab name itself. vocabs.loader doesn't put up with that anymore.
2011-11-06 18:57:12 -08:00
Doug Coleman
be9f8a99f0
Rename lookup to lookup-word.
2011-11-06 16:00:00 -08:00
Doug Coleman
90692a7c10
webapps.help: Load the navbar from a Factor word instead of hardcoding it into the template so that the glossary link works.
2011-11-06 12:16:46 -08:00
Doug Coleman
d580d8fc01
html.components: For the t:html tag, only wrap strings in unescaped so that other objects can render.
2011-11-06 12:15:00 -08:00
Doug Coleman
fcd639f52e
webapps.help: Change webapps.help search from post to get. Fixes #343 .
2011-11-05 00:07:16 -07:00
Doug Coleman
1f9dccb223
help.html: fix glossary link.
2011-11-05 00:05:58 -07:00
Doug Coleman
16e1dee457
Make edit-vocab work on an unloaded vocabulary.
2011-11-04 23:33:18 -07:00
Joe Groff
c78b4d7f60
cpu.x86.*.bootstrap: save flags in signal-handlers
2011-11-04 11:56:01 -07:00
Joe Groff
db1a47ffc1
cpu.x86.bootstrap: cell -> bootstrap-cell
2011-11-04 11:54:40 -07:00
Joe Groff
a944e41e79
cpu.x86.assembler: PUSHF, POPF instructions
2011-11-04 11:23:11 -07:00
Joe Groff
d4f24f44c3
cpu.x86.64.bootstrap: save all the regs on signal
...
Appears to fix another sporadic crash from mason on x86-64. There's no reason to cut corners here, really.
2011-11-04 10:01:56 -07:00
Doug Coleman
a3ceb95060
Fix bootstrap. Add missing using on io.serial.linux. Fixes #351 .
2011-11-04 06:08:02 -07:00
Joe Groff
88dbe09c4c
unix.ffi: add signal constants
2011-11-04 00:24:18 -07:00
Joe Groff
50e0342f2b
switch back to gcc from clang since it goes faster
2011-11-04 00:09:30 -07:00
Joe Groff
a28192859a
cpu.x86.bootstrap: don't safepoint in a safepoint
...
Safepointing in the signal-handler primitive causes a crash if the safepoint is guarded and the signal being handled was raised by a safepoint. Put our own RET in the subprimitive to bail out before the standard epilog gets written out. This tentatively appears to fix #349 .
2011-11-03 20:19:38 -07:00
Joe Groff
721228965f
makefile: add macosx-x86-fat target
2011-11-03 20:19:37 -07:00
Doug Coleman
8c9c655a43
Move io.serial.unix to io.serial.linux, add platforms files. Move termios into io.serial.linux.ffi vocab.
2011-11-03 16:26:34 -07:00
Joe Groff
30ccc2ebf6
mason.release.branch: fix test
2011-11-03 15:40:24 -07:00
Joe Groff
82bdb6a65a
stack-checker.known-words: add ffi-signal-handlers
2011-11-03 15:20:42 -07:00
Joe Groff
1155da01c9
cpu.x86.32.bootstrap: typo
2011-11-03 13:07:13 -07:00