Skip to content

Commit 4533f33

Browse files
committed
Merge branch 'master' of jsoftware.com:jsource
stab at fixing clang crash
2 parents a3763be + 49cd1e2 commit 4533f33

45 files changed

Lines changed: 2108 additions & 1838 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/jsource.yml

Lines changed: 85 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
strip -S libjavx512.so || true
5757
strip -S libtsdll.so
5858
strip -S jamalgam || true
59-
strip -S libgmp.so
59+
strip -S libgmp.so || true
6060
cd -
6161
ls -l j64
6262
zip -r l64.zip j64
@@ -149,7 +149,7 @@ jobs:
149149
strip -S libj.so
150150
strip -S libtsdll.so
151151
strip -S jamalgam || true
152-
strip -S libgmp.so
152+
strip -S libgmp.so || true
153153
cd -
154154
ls -l j32
155155
zip -r l32.zip j32
@@ -383,7 +383,7 @@ jobs:
383383
strip -S libj.so
384384
strip -S libtsdll.so
385385
strip -S jamalgam || true
386-
strip -S libgmp.so
386+
strip -S libgmp.so || true
387387
cd -
388388
ls -l j64
389389
zip -r rpi64.zip j64
@@ -440,7 +440,7 @@ jobs:
440440
strip -S libj.so
441441
strip -S libtsdll.so
442442
strip -S jamalgam || true
443-
strip -S libgmp.so
443+
strip -S libgmp.so || true
444444
cd -
445445
ls -l j32
446446
zip -r rpi32.zip j32
@@ -492,7 +492,7 @@ jobs:
492492
strip -S libj.so
493493
strip -S libtsdll.so
494494
strip -S jamalgam || true
495-
strip -S libgmp.so
495+
strip -S libgmp.so || true
496496
cd -
497497
zip -r rpi64.zip j64
498498
zip rpi64.zip /usr/bin/zip
@@ -559,7 +559,7 @@ jobs:
559559
strip -S libj.so
560560
strip -S libtsdll.so
561561
strip -S jamalgam || true
562-
strip -S libgmp.so
562+
strip -S libgmp.so || true
563563
cd -
564564
zip -r rpi32.zip j32
565565
rm -rf j32
@@ -633,7 +633,7 @@ jobs:
633633
strip -S libjavx512.so || true
634634
strip -S libtsdll.so
635635
strip -S jamalgam || true
636-
strip -S libgmp.so
636+
strip -S libgmp.so || true
637637
cd -
638638
ls -l j64
639639
zip -r obsd64.zip j64
@@ -702,7 +702,7 @@ jobs:
702702
strip -S libjavx512.so || true
703703
strip -S libtsdll.so
704704
strip -S jamalgam || true
705-
strip -S libgmp.so
705+
strip -S libgmp.so || true
706706
cd -
707707
ls -l j64
708708
zip -r obsd64.zip j64
@@ -769,7 +769,7 @@ jobs:
769769
strip -S libj.so
770770
strip -S libtsdll.so
771771
strip -S jamalgam || true
772-
strip -S libgmp.so
772+
strip -S libgmp.so || true
773773
cd -
774774
ls -l j64
775775
zip -r obsdarm64.zip j64
@@ -842,7 +842,7 @@ jobs:
842842
strip -S libjavx512.so || true
843843
strip -S jamalgam || true
844844
strip -S libtsdll.so
845-
strip -S libgmp.so
845+
strip -S libgmp.so || true
846846
cd -
847847
ls -l j64
848848
zip -r fbsd64.zip j64
@@ -915,7 +915,7 @@ jobs:
915915
strip -S libjavx512.so || true
916916
strip -S libtsdll.so
917917
strip -S jamalgam || true
918-
strip -S libgmp.so
918+
strip -S libgmp.so || true
919919
cd -
920920
ls -l j64
921921
zip -r fbsd64.zip j64
@@ -989,7 +989,7 @@ jobs:
989989
strip -S libjavx512.so || true
990990
strip -S libtsdll.so
991991
strip -S jamalgam || true
992-
strip -S libgmp.so
992+
strip -S libgmp.so || true
993993
cd -
994994
ls -l j64
995995
zip -r fbsdarm64.zip j64
@@ -1103,6 +1103,7 @@ jobs:
11031103
- name: Build JE (Windows)
11041104
shell: cmd
11051105
env:
1106+
NASM: ${{github.workspace}}\openssl-asm\nasm
11061107
USE_PYXES: 1
11071108
USE_EMU_AVX: 1
11081109
run: |
@@ -1152,6 +1153,7 @@ jobs:
11521153
- name: Build JE (Windows 32)
11531154
shell: cmd
11541155
env:
1156+
NASM: ${{github.workspace}}\openssl-asm\nasm
11551157
USE_PYXES: 0
11561158
USE_EMU_AVX: 0
11571159
run: |
@@ -1285,12 +1287,12 @@ jobs:
12851287
path: testwinarm64.txt
12861288
overwrite: true
12871289

1288-
# Name Prefix Toolchain Architecture C Library C++ Library
1289-
# MSYS /usr gcc x86_64 cygwin libstdc++
1290-
# UCRT64 /ucrt64 gcc x86_64 ucrt libstdc++
1291-
# CLANG64 /clang64 llvm x86_64 ucrt libc++
1292-
# CLANGARM64 /clangarm64 llvm aarch64 ucrt libc++
1293-
# MINGW64 /mingw64 gcc x86_64 msvcrt libstdc++
1290+
# Name Prefix Toolchain Architecture C Library C++ Library
1291+
# MSYS /usr gcc x86_64 cygwin libstdc++
1292+
# UCRT64 /ucrt64 gcc x86_64 ucrt libstdc++
1293+
# CLANG64 /clang64 llvm x86_64 ucrt libc++
1294+
# CLANGARM64 /clangarm64 llvm aarch64 ucrt libc++
1295+
# MINGW64 /mingw64 gcc x86_64 msvcrt libstdc++
12941296
# { sys: mingw64, env: x86_64 }
12951297
# { sys: mingw32, env: i686 }
12961298
# { sys: ucrt64, env: ucrt-x86_64 }
@@ -1340,6 +1342,19 @@ jobs:
13401342
run: |
13411343
script/testga.sh windows x86_64 || exit 1
13421344
1345+
- name: Compress Files (Windows MSYS2 x64)
1346+
shell: pwsh
1347+
run: Compress-Archive j64 w64mw.zip
1348+
1349+
- name: Release JE (Windows MSYS2 x64)
1350+
uses: ncipollo/release-action@v1
1351+
with:
1352+
tag: build
1353+
artifacts: "w64mw.zip"
1354+
token: ${{ secrets.GITHUB_TOKEN }}
1355+
allowUpdates: true
1356+
replacesArtifacts: true
1357+
13431358
# windows msys2 x86 ----------------------------------------------------
13441359
jewin-msys2-x86:
13451360
name: JE (Windows MSYS2 x86)
@@ -1383,6 +1398,19 @@ jobs:
13831398
run: |
13841399
script/testga.sh windows i386 || exit 1
13851400
1401+
- name: Compress Files (Windows MSYS2 x86)
1402+
shell: pwsh
1403+
run: Compress-Archive j32 w32mw.zip
1404+
1405+
- name: Release JE (Windows MSYS2 x86)
1406+
uses: ncipollo/release-action@v1
1407+
with:
1408+
tag: build
1409+
artifacts: "w32mw.zip"
1410+
token: ${{ secrets.GITHUB_TOKEN }}
1411+
allowUpdates: true
1412+
replacesArtifacts: true
1413+
13861414
# windows msys2 arm64 --------------------------------------------------
13871415
jewin-msys2-arm64:
13881416
name: JE (Windows MSYS2 arm64)
@@ -1431,7 +1459,26 @@ jobs:
14311459
tests:
14321460
name: Test Results
14331461
runs-on: ubuntu-22.04
1434-
needs: [jelinux, jelinux-gcc, jelinux32, jelinuxd, jemacos, jemacosarm, jerpi64arm, jerpi32arm, jewin, jewin32, jewinarm64, jeandroid, jefreebsd2, jefreebsdarm64, jeopenbsd2, jeopenbsdarm64 ]
1462+
# the needs definition below is also given later in webhook
1463+
# this allows tests to be run that can be ignored for the webhook
1464+
# AFAIK there is no cleaner way to do this
1465+
needs:
1466+
- jelinux
1467+
- jelinux-gcc
1468+
- jelinux32
1469+
- jelinuxd
1470+
- jemacos
1471+
- jemacosarm
1472+
- jerpi64arm
1473+
- jerpi32arm
1474+
- jewin
1475+
- jewin32
1476+
- jewinarm64
1477+
- jeandroid
1478+
- jefreebsd2
1479+
- jefreebsdarm64
1480+
- jeopenbsd2
1481+
- jeopenbsdarm64
14351482
steps:
14361483
- name: Checkout Git repository
14371484
uses: actions/checkout@v4
@@ -1456,7 +1503,25 @@ jobs:
14561503
webhook:
14571504
name: Run Webhook
14581505
runs-on: ubuntu-22.04
1459-
needs: tests
1506+
# this needs is also in tests above
1507+
# comment out any needs not used by the webhook
1508+
needs:
1509+
- jelinux
1510+
# - jelinux-gcc
1511+
- jelinux32
1512+
- jelinuxd
1513+
- jemacos
1514+
- jemacosarm
1515+
- jerpi64arm
1516+
- jerpi32arm
1517+
- jewin
1518+
- jewin32
1519+
- jewinarm64
1520+
- jeandroid
1521+
- jefreebsd2
1522+
- jefreebsdarm64
1523+
- jeopenbsd2
1524+
- jeopenbsdarm64
14601525
steps:
14611526
- name: update server
14621527
uses: distributhor/workflow-webhook@v2

jlibrary/addons/data/dictionary/dictionary.ijs renamed to jlibrary/addons/data/dict/dict.ijs

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
coclass 'jdictionary'
1+
coclass 'jdict'
22

33
SIZE_GROWTH_GEOMETRIC_STEP =: 2
44

@@ -17,6 +17,18 @@ valueshape =: i. 0
1717
keyhash =: 16!:0`''
1818
keycompare =: 16!:0`''
1919
initcapacity =: 100
20+
NB. Names of params.
21+
long_param_names =: <;._2 {{)n
22+
keytype
23+
keyshape
24+
valuetype
25+
valueshape
26+
keyhash
27+
keycompare
28+
initcapacity
29+
}}
30+
short_param_names =: 4 2 $ 'ktksvtvs'
31+
search_short_param_names =: short_param_names&i.
2032

2133
if. (-: (index_type {.~ -@#)) 'concurrent' do.
2234
singlethreaded =. 0
@@ -30,18 +42,18 @@ case. 'hash' do.
3042
itype =: 0 NB. index type 0 is hash
3143
occupancy =: 0.5 NB. default for occupancy
3244
NB. Parse params and update above attributes.
45+
long_param_names =: long_param_names , < 'occupancy'
46+
search_long_param_names =: long_param_names&i.
3347
parse^:(*@#) creation_parameters
3448
internal_parameters =. (0 , initcapacity , <. initcapacity % occupancy) ; singlethreaded ; (keytype ; keyshape) ; < (valuetype ; valueshape)
3549
case. 'tree' do.
3650
itype =: 1 NB. index type 1 is tree
3751
NB. Parse params and update above attributes.
52+
search_long_param_names =: long_param_names&i.
3853
parse^:(*@#) creation_parameters
39-
if. 0 <: 4!:0 < 'occupancy' do.
40-
13!:8 (3) [ 'Parameter not supported in tree dictionary: occupancy'
41-
end.
4254
internal_parameters =. (0 , initcapacity) ; singlethreaded ; (keytype ; keyshape) ; < (valuetype ; valueshape)
4355
case. do.
44-
13!:8 (3) [ 'Incorrect index type'
56+
13!:8&3 'Incorrect index type'
4557
end.
4658

4759
NB. Create the map, which remains as dict. dict is marked nondisplayable because 1 {:: dict is.
@@ -114,6 +126,11 @@ n {~ (<;._1 t) i. < y
114126
NB. Parse attribute and set its value.
115127
parse =: {{)m
116128
'attribute value' =: y
129+
if. (# short_param_names) > idx =. search_short_param_names attribute do.
130+
attribute =. idx {:: long_param_names
131+
end.
132+
incorrect =. (# long_param_names) -: search_long_param_names < attribute
133+
13!:8&3^:incorrect attribute , ' parameter not supported'
117134
if. ('literal' -: datatype value) *. (attribute -: 'keytype') +. attribute -: 'valuetype' do.
118135
value =. typeid_from_typename value
119136
end.

jlibrary/system/main/regex.ijs

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -178,22 +178,38 @@ NB. =========================================================
178178
NB. pcre2 library is in bin or tools/regex
179179
3 : 0''
180180
select. UNAME
181-
case. 'Win' do. t=. 'jpcre2.dll'
182-
case. 'Darwin' do. t=. 'libjpcre2.dylib'
183181
case. 'Android' do. pcre2dll=: 'libjpcre2.so' return.
184-
case. do. t=. 'libjpcre2.so'
182+
case. 'Darwin' do. t0=. 'libjpcre2' [ ext=. '.dylib' [ arch=. ''
183+
case. 'Win' do. t0=. 'jpcre2' [ ext=. '.dll' [ arch=. ((-.IF64)#<'_32'),(('arm64'-:9!:56'cpu')#<'_arm64')
184+
case. do.
185+
t0=. 'libjpcre2' [ ext=. '.so'
186+
if. IFRASPI do.
187+
arch=. ((-.IF64)#<'_32')
188+
else.
189+
arch=. ((-.IF64)#<'_32'),(('arm64'-:9!:56'cpu')#<'_arm64')
190+
end.
185191
end.
186192

187-
f=. BINPATH,'/',t
188-
if. 0 = 1!:4 :: 0: <f do.
189-
f=. jpath '~tools/regex/',t
193+
found=. 0
194+
for_ar. arch do.
195+
if. 1= ftype f=. BINPATH,'/',t0,(>ar),ext do.
196+
found=. 1 break.
197+
elseif. 1= ftype f=. jpath '~tools/regex/',t0,(>ar),ext do.
198+
found=. 1 break.
199+
end.
200+
end.
201+
202+
if. -.found do.
203+
if. 1= ftype f=. BINPATH,'/',t0,ext do.
204+
found=. 1
205+
elseif. 1= ftype f=. jpath '~tools/regex/',t0,ext do.
206+
found=. 1
207+
end.
190208
end.
191209

192210
NB. fall back one more time
193-
if. IFUNIX *. 0 = 1!:4 :: 0: <f do.
194-
f=. unxlib 'pcre2'
195-
elseif. 0 = 1!:4 :: 0: <f do.
196-
f=. t
211+
if. -.found do.
212+
if. IFUNIX do. f=. unxlib 'pcre2' else. f=. 'pcre2-8',ext end.
197213
end.
198214

199215
pcre2dll=: f

jlibrary/system/main/stdlib.ijs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cocurrent <'z'
22
3 : 0 ''
33

4-
JLIB=: '9.7.8'
4+
JLIB=: '9.7.10'
55

66
notdef=. 0: ~: 4!:0 @ <
77
hostpathsep=: ('/\'{~6=9!:12'')&(I. @ (e.&'/\')@] })

jlibrary/system/util/pacman.ijs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1365,6 +1365,7 @@ readlocal=: 3 : 0
13651365
readlin''
13661366
ADDONS=: fixjal freads ADDCFG,'addons.txt'
13671367
ADDINS=: fixjal2 freads ADDCFG,'addins.txt'
1368+
ADDINS=: ADDINS {~ <<< I. -. ({."1 ADDINS) e. {."1 ADDONS
13681369
REV=: fixrev freads ADDCFG,'revision.txt'
13691370
LASTUPD=: fixupd freads ADDCFG,'lastupdate.txt'
13701371
LIBS=: fixlibs freads ADDCFG,'library.txt'

jlibrary/system/util/scripts.ijs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ colortab ~addons/graphics/color/colortab.ijs
1515
csv ~addons/tables/csv/csv.ijs
1616
dd ~addons/data/odbc/odbc.ijs
1717
debug ~addons/ide/qt/debugs.ijs
18-
dictionary ~addons/data/dictionary/dictionary.ijs
18+
dict ~addons/data/dict/dict.ijs
1919
gl2 ~addons/graphics/gl2/gl2.ijs
2020
gles ~addons/api/gles/gles.ijs
2121
graph ~addons/graphics/graph/graph.ijs

0 commit comments

Comments
 (0)