summary refs log tree commit diff stats
path: root/compiler/vm.nim
Commit message (Expand)AuthorAgeFilesLines
* Remove immediate pragma (#11308)Arne Döring2019-05-291-11/+6
* right shift is now by default sign preserving (#11322)Arne Döring2019-05-291-5/+11
* Allow void macro result (#11286)Arne Döring2019-05-211-1/+1
* Replace countup(x, y) with x .. yClyybber2019-05-071-1/+1
* Replace countup(x, y-1) with x ..< yClyybber2019-05-071-3/+3
* Compiler plugin for implementing incremental computation in user space (#10819)cooldome2019-04-111-3/+1
* sizeof alignof offsetof macros api (#10855)Arne Döring2019-03-191-0/+21
* Initial version of the hot-code reloading support for native targets (#10729)zah2019-02-261-2/+9
* FFI at CT (#10150)Timothee Cour2019-02-231-11/+26
* revive #10228 (fix #9880) (#10610)Timothee Cour2019-02-131-11/+11
* fixes #10547Andreas Rumpf2019-02-131-5/+6
* Rework exception handling in the VM (#10544)LemonBoy2019-02-081-101/+156
* Vm bitops fixes (#10520)Arne Döring2019-02-051-0/+5
* Fixes https://github.com/nim-lang/Nim/issues/8484 (#10470) [backport]Neelesh Chandola2019-01-281-1/+2
* Object downconversion in VM should not copy (#10378)LemonBoy2019-01-221-0/+5
* Support system.reset in vm (#10400)Oscar Nihlgård2019-01-211-2/+0
* improve vmgen.codeListing formatting (#10306)Timothee Cour2019-01-151-4/+3
* fixes #10104Araq2019-01-131-6/+12
* [error messages, stacktraces] fix #8794 #9270 #9767 #9768 (#9766)Timothee Cour2019-01-081-5/+10
* fix #9872: setLen now works properly at CT [backport]Timothee Cour2018-12-081-16/+2
* Add isInstanceOf for generic procs to the macros module (#9730)cooldome2018-11-211-0/+11
* Of operator in vm fixes [backport] (#9717)cooldome2018-11-151-1/+1
* VM: don't inject destructor calls, refs #7041Andreas Rumpf2018-11-061-6/+6
* Add testAndrii Riabushenko2018-10-241-5/+9
* Add int float casts to vmAndrii Riabushenko2018-10-241-0/+12
* Change the order of compilation passes, transformation is made lazy at code g...cooldome2018-10-181-0/+11
* Make the registered passes local to the ModuleGraph (#9259)LemonBoy2018-10-091-1/+1
* Fix error during field access in VMLemonBoy2018-09-171-3/+7
* Add sym owner to macros (#8253)cooldome2018-09-031-0/+9
* fixes the remaining fixable Nimrod->Nim renamings; closes #2032Araq2018-09-031-1/+1
* fixes #8740Araq2018-09-031-1/+1
* Allow `hint` and `warning` to specify its loc info (#8771)LemonBoy2018-08-281-8/+12
* fixes 8754 (#8755)cooldome2018-08-241-0/+8
* even more strict isNil handling for strings/seqs in order to detect bugsAraq2018-08-221-12/+10
* fixes #6255, add `system.ashr` arithmetic right shift (#8547)andri lim2018-08-071-0/+3
* fixes #5617, 'copyLineInfo' addition (#8523)andri lim2018-08-051-14/+13
* fixes #7827, bindSym enhancement (#8499)andri lim2018-08-021-1/+17
* `lineInfoObj` (and `check`, `expect`) now return absolute paths (#8466)Timothee Cour2018-07-311-1/+1
* Fix ref bug in vmgen (#8424)Oscar Nihlgård2018-07-301-8/+1
* VM: accessing the string terminator is not allowed anymore; cleanup tests/sys...Andreas Rumpf2018-07-171-1/+3
* Fix vm regression (#8163)Oscar Nihlgård2018-06-301-0/+7
* Fixes #6689 (#8135)Oscar Nihlgård2018-06-301-2/+8
* VM regression fixes (#8146)Oscar Nihlgård2018-06-291-1/+3
* Improve vm support for ref typesOscar Nihlgård2018-06-261-21/+26
* completed VM support for incremental compilationsAndreas Rumpf2018-06-041-26/+38
* WIP: an API for VM replay global state supportAndreas Rumpf2018-06-031-1/+90
* incremental compilation: implemented basic replay logicAndreas Rumpf2018-06-021-17/+17
* compiler API: final cleanups; improve security by diabling 'gorge' and friendsAndreas Rumpf2018-05-291-9/+12
* vm now free of global variablesAndreas Rumpf2018-05-281-14/+8
* vm.nim: evalMacroCounter is not a global variable anymoreAndreas Rumpf2018-05-281-6/+5
/div>
2490c3ed ^
4c6cfcdc ^
2490f5b4 ^
4c6cfcdc ^
107fdd35 ^
92837ec1 ^
107fdd35 ^
107fdd35 ^
447d2358 ^
21ab1821 ^
d96e68ea ^
107fdd35 ^

38ed9188 ^
424f52c3 ^
32da6548 ^
d3698e6b ^
68ed20f1 ^




81190251 ^











68ed20f1 ^
68ed20f1 ^
81190251 ^



68ed20f1 ^
85cc5ab5 ^
81190251 ^
68ed20f1 ^
68ed20f1 ^
68ed20f1 ^
d782b007 ^
e9194452 ^
68ed20f1 ^






5e324e40 ^
d54cbf12 ^
f9a7e350 ^
de747e3d ^
68ed20f1 ^
d782b007 ^


0fbaa6f5 ^
d782b007 ^
2490c3ed ^


1cd23e0e ^
c2c2cee6 ^
acd2d230 ^
fa89e2aa ^
0d15c710 ^
fa89e2aa ^

0d15c710 ^
264fc55a ^
6d6bb645 ^
68ed20f1 ^
7638f379 ^
0c1092fd ^

1809064d ^

0c1092fd ^
3ceb9b0d ^
2490c3ed ^

1cd23e0e ^
2490c3ed ^

fa89e2aa ^
6d6bb645 ^
7e4b1b1d ^
0fbaa6f5 ^
fa89e2aa ^

0fbaa6f5 ^
fa89e2aa ^
264fc55a ^

d782b007 ^
0fbaa6f5 ^
3ceb9b0d ^



0fbaa6f5 ^


d782b007 ^
252c7c2e ^

68ed20f1 ^
1329fe14 ^
68ed20f1 ^
252c7c2e ^

c5a04de9 ^
252c7c2e ^

68ed20f1 ^


252c7c2e ^
c5a04de9 ^
2655d9e8 ^
0c1092fd ^

01394d6c ^
0fbaa6f5 ^

0c1092fd ^

13ee16de ^
0fbaa6f5 ^


















fb0e0659 ^


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
                



                                                                    
                                           
                                       
                                             




                                                                                
                                                 
                                         
                                                             
                                                             
                                                     

                                                                   
                                                                
                                            
                            
                                             
                                                  
                                         
                                                     
                                                       
                            
                            
                                               
                                                           

                                                     
                                                     
                                                   
                                                           
                                             
 
                    
                                                  



                                                                    
                                           
                                             
                                         
                     
                       
                       
                                                     
                                                       
                            
                            
                                               
                                                           
                                                 
                               
                                                   
                                                     

                                                           
                                             
                                                             
                                                             
                                                     




                                                             











                                                                                   
                                                                           
                                                                               



                                                                                 
                                                                       
                                                                       
                                                                         
                                                                             
                                                                                     
                                   
 
                          






                                                                                             
                                                                                   
                                                                                     
                                                                                 
                                                                                     
                                               


                        
                              
 


                                   
                        
                                      
 
                
                                                                       

                
                                                                       
 
                        
                                      
 

                         

                                                            
                              
 

                              
                                           

     
            
                                           
             
                               

             
                               
     

     
                        
                                                  



                                         


                              
 

                                          
                                                       
                                     
                                          

               
              

                                                       


                                                                                          
     
     
 

                         
                                                                                          

                      

                                  
                                       


















                                                                                                              


                                     
core_sources = \
	src/contact.c src/contact.h src/log.c src/common.c \
	src/log.h src/profanity.c src/common.h \
	src/profanity.h src/chat_session.c \
	src/chat_session.h src/muc.c src/muc.h src/jid.h src/jid.c \
	src/chat_state.h src/chat_state.c \
	src/resource.c src/resource.h \
	src/roster_list.c src/roster_list.h \
	src/xmpp/xmpp.h src/xmpp/capabilities.c src/xmpp/connection.c \
	src/xmpp/iq.c src/xmpp/message.c src/xmpp/presence.c src/xmpp/stanza.c \
	src/xmpp/stanza.h src/xmpp/message.h src/xmpp/iq.h src/xmpp/presence.h \
	src/xmpp/capabilities.h src/xmpp/connection.h \
	src/xmpp/roster.c src/xmpp/roster.h \
	src/xmpp/bookmark.c src/xmpp/bookmark.h \
	src/xmpp/form.c src/xmpp/form.h \
	src/event/server_events.c src/event/server_events.h \
	src/event/client_events.c src/event/client_events.h \
	src/event/ui_events.c src/event/ui_events.h \
	src/ui/ui.h src/ui/window.c src/ui/window.h src/ui/core.c \
	src/ui/titlebar.c src/ui/statusbar.c src/ui/inputwin.c \
	src/ui/titlebar.h src/ui/statusbar.h src/ui/inputwin.h \
	src/ui/console.c src/ui/notifier.c \
	src/ui/win_types.h \
	src/window_list.c src/window_list.h \
	src/ui/rosterwin.c src/ui/occupantswin.c \
	src/ui/buffer.c src/ui/buffer.h \
	src/command/command.h src/command/command.c \
	src/command/commands.h src/command/commands.c \
	src/tools/parser.c \
	src/tools/parser.h \
	src/tools/p_sha1.h src/tools/p_sha1.c \
	src/tools/autocomplete.c src/tools/autocomplete.h \
	src/tools/tinyurl.c src/tools/tinyurl.h \
	src/config/accounts.c src/config/accounts.h \
	src/config/tlscerts.c src/config/tlscerts.h \
	src/config/account.c src/config/account.h \
	src/config/preferences.c src/config/preferences.h \
	src/config/theme.c src/config/theme.h

unittest_sources = \
	src/contact.c src/contact.h src/common.c \
	src/log.h src/profanity.c src/common.h \
	src/profanity.h src/chat_session.c \
	src/chat_session.h src/muc.c src/muc.h src/jid.h src/jid.c \
	src/resource.c src/resource.h \
	src/chat_state.h src/chat_state.c \
	src/roster_list.c src/roster_list.h \
	src/xmpp/xmpp.h src/xmpp/form.c \
	src/ui/ui.h \
	src/otr/otr.h \
	src/pgp/gpg.h \
	src/command/command.h src/command/command.c \
	src/command/commands.h src/command/commands.c \
	src/tools/parser.c \
	src/tools/parser.h \
	src/tools/p_sha1.h src/tools/p_sha1.c \
	src/tools/autocomplete.c src/tools/autocomplete.h \
	src/tools/tinyurl.c src/tools/tinyurl.h \
	src/config/accounts.h \
	src/config/account.c src/config/account.h \
	src/config/tlscerts.c src/config/tlscerts.h \
	src/config/preferences.c src/config/preferences.h \
	src/config/theme.c src/config/theme.h \
	src/window_list.c src/window_list.h \
	src/event/server_events.c src/event/server_events.h \
	src/event/client_events.c src/event/client_events.h \
	src/event/ui_events.c src/event/ui_events.h \
	tests/unittests/xmpp/stub_xmpp.c \
	tests/unittests/ui/stub_ui.c \
	tests/unittests/log/stub_log.c \
	tests/unittests/config/stub_accounts.c \
	tests/unittests/helpers.c tests/unittests/helpers.h \
	tests/unittests/test_form.c tests/unittests/test_form.h \
	tests/unittests/test_common.c tests/unittests/test_common.h \
	tests/unittests/test_autocomplete.c tests/unittests/test_autocomplete.h \
	tests/unittests/test_jid.c tests/unittests/test_jid.h \
	tests/unittests/test_parser.c tests/unittests/test_parser.h \
	tests/unittests/test_roster_list.c tests/unittests/test_roster_list.h \
	tests/unittests/test_chat_session.c tests/unittests/test_chat_session.h \
	tests/unittests/test_contact.c tests/unittests/test_contact.h \
	tests/unittests/test_preferences.c tests/unittests/test_preferences.h \
	tests/unittests/test_server_events.c tests/unittests/test_server_events.h \
	tests/unittests/test_muc.c tests/unittests/test_muc.h \
	tests/unittests/test_cmd_statuses.c tests/unittests/test_cmd_statuses.h \
	tests/unittests/test_cmd_alias.c tests/unittests/test_cmd_alias.h \
	tests/unittests/test_cmd_connect.c tests/unittests/test_cmd_connect.h \
	tests/unittests/test_cmd_rooms.c tests/unittests/test_cmd_rooms.h \
	tests/unittests/test_cmd_account.c tests/unittests/test_cmd_account.h \
	tests/unittests/test_cmd_sub.c tests/unittests/test_cmd_sub.h \
	tests/unittests/test_cmd_bookmark.c tests/unittests/test_cmd_bookmark.h \
	tests/unittests/test_cmd_otr.c tests/unittests/test_cmd_otr.h \
	tests/unittests/test_cmd_pgp.c tests/unittests/test_cmd_pgp.h \
	tests/unittests/test_cmd_join.c tests/unittests/test_cmd_join.h \
	tests/unittests/test_cmd_roster.c tests/unittests/test_cmd_roster.h \
	tests/unittests/test_cmd_disconnect.c tests/unittests/test_cmd_disconnect.h \
	tests/unittests/unittests.c

functionaltest_sources = \
	tests/functionaltests/proftest.c tests/functionaltests/proftest.h \
	tests/functionaltests/test_connect.c tests/functionaltests/test_connect.h \
	tests/functionaltests/test_ping.c tests/functionaltests/test_ping.h \
	tests/functionaltests/test_rooms.c tests/functionaltests/test_rooms.h \
	tests/functionaltests/test_presence.c tests/functionaltests/test_presence.h \
	tests/functionaltests/test_message.c tests/functionaltests/test_message.h \
	tests/functionaltests/test_chat_session.c tests/functionaltests/test_chat_session.h \
	tests/functionaltests/test_carbons.c tests/functionaltests/test_carbons.h \
	tests/functionaltests/test_receipts.c tests/functionaltests/test_receipts.h \
	tests/functionaltests/test_roster.c tests/functionaltests/test_roster.h \
	tests/functionaltests/test_software.c tests/functionaltests/test_software.h \
	tests/functionaltests/functionaltests.c

main_source = src/main.c

git_include = src/gitversion.h

pgp_sources = \
	src/pgp/gpg.h src/pgp/gpg.c

pgp_unittest_sources = \
	tests/unittests/pgp/stub_gpg.c

otr3_sources = \
	src/otr/otrlib.h src/otr/otrlibv3.c src/otr/otr.h src/otr/otr.c

otr4_sources = \
	src/otr/otrlib.h src/otr/otrlibv4.c src/otr/otr.h src/otr/otr.c

otr_unittest_sources = \
	tests/unittests/otr/stub_otr.c

themes_sources = themes/*

script_sources = bootstrap.sh configure-debug install-all.sh

man_sources = docs/profanity.1

if BUILD_PGP
core_sources += $(pgp_sources)
unittest_sources += $(pgp_unittest_sources)
endif

if BUILD_OTR
unittest_sources += $(otr_unittest_sources)
if BUILD_OTR3
core_sources += $(otr3_sources)
endif
if BUILD_OTR4
core_sources += $(otr4_sources)
endif
endif

bin_PROGRAMS = profanity
profanity_SOURCES = $(core_sources) $(main_source)
if THEMES_INSTALL
profanity_themesdir = @THEMES_PATH@
profanity_themes_DATA = $(themes_sources)
endif
if INCLUDE_GIT_VERSION
BUILT_SOURCES = $(git_include)
endif

TESTS = tests/unittests/unittests
check_PROGRAMS = tests/unittests/unittests
tests_unittests_unittests_SOURCES = $(unittest_sources)
tests_unittests_unittests_CFLAGS = -w
tests_unittests_unittests_LDADD = -lcmocka

if HAVE_STABBER
if HAVE_EXPECT
TESTS += tests/functionaltests/functionaltests
check_PROGRAMS += tests/functionaltests/functionaltests
tests_functionaltests_functionaltests_SOURCES = $(functionaltest_sources)
tests_functionaltests_functionaltests_CFLAGS = -I/usr/include/tcl8.6 -I/usr/include/tcl8.5
tests_functionaltests_functionaltests_LDADD = -lcmocka -lstabber -lexpect -ltcl
endif
endif

man_MANS = $(man_sources)

EXTRA_DIST = $(man_sources) $(themes_sources) $(script_sources) profrc.example LICENSE.txt

if INCLUDE_GIT_VERSION
EXTRA_DIST += .git/HEAD .git/index

$(git_include).in: .git/HEAD .git/index
	rm -f $@
	echo "#ifndef PROF_GIT_BRANCH" >> $@
	echo "#define PROF_GIT_BRANCH \"$(shell git rev-parse --symbolic-full-name --abbrev-ref HEAD)\"" >> $@
	echo "#endif" >> $@
	echo "#ifndef PROF_GIT_REVISION" >> $@
	echo "#define PROF_GIT_REVISION \"$(shell git log --pretty=format:'%h' -n 1)\"" >> $@
	echo "#endif" >> $@

#
# Create $(git_include) atomically to catch possible race. The race can occur
# when $(git_include) is generated in parallel with building of src/profanity.c.
# So this hack allows to find and fix the problem earlier.
#
$(git_include): $(git_include).in
	cp $< $@

clean-local:
	rm -f $(git_include) $(git_include).in
endif

check-unit: tests/unittests/unittests
	tests/unittests/unittests