mirror of
https://github.com/dlang/phobos.git
synced 2025-04-28 06:00:35 +03:00
phobos 0.113
This commit is contained in:
parent
dfb3c86aec
commit
bc412e7c3f
19 changed files with 279 additions and 16 deletions
|
@ -1,3 +1,26 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2004 by Digital Mars, www.digitalmars.com
|
||||||
|
* Written by Walter Bright
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any damages
|
||||||
|
* arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any purpose,
|
||||||
|
* including commercial applications, and to alter it and redistribute it
|
||||||
|
* freely, in both source and binary form, subject to the following
|
||||||
|
* restrictions:
|
||||||
|
*
|
||||||
|
* o The origin of this software must not be misrepresented; you must not
|
||||||
|
* claim that you wrote the original software. If you use this software
|
||||||
|
* in a product, an acknowledgment in the product documentation would be
|
||||||
|
* appreciated but is not required.
|
||||||
|
* o Altered source versions must be plainly marked as such, and must not
|
||||||
|
* be misrepresented as being the original software.
|
||||||
|
* o This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************
|
/******************************************
|
||||||
|
|
|
@ -1,3 +1,26 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2004 by Digital Mars, www.digitalmars.com
|
||||||
|
* Written by Walter Bright
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any damages
|
||||||
|
* arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any purpose,
|
||||||
|
* including commercial applications, and to alter it and redistribute it
|
||||||
|
* freely, in both source and binary form, subject to the following
|
||||||
|
* restrictions:
|
||||||
|
*
|
||||||
|
* o The origin of this software must not be misrepresented; you must not
|
||||||
|
* claim that you wrote the original software. If you use this software
|
||||||
|
* in a product, an acknowledgment in the product documentation would be
|
||||||
|
* appreciated but is not required.
|
||||||
|
* o Altered source versions must be plainly marked as such, and must not
|
||||||
|
* be misrepresented as being the original software.
|
||||||
|
* o This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
import object;
|
import object;
|
||||||
import std.string;
|
import std.string;
|
||||||
|
|
|
@ -1,3 +1,26 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2004 by Digital Mars, www.digitalmars.com
|
||||||
|
* Written by Walter Bright
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any damages
|
||||||
|
* arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any purpose,
|
||||||
|
* including commercial applications, and to alter it and redistribute it
|
||||||
|
* freely, in both source and binary form, subject to the following
|
||||||
|
* restrictions:
|
||||||
|
*
|
||||||
|
* o The origin of this software must not be misrepresented; you must not
|
||||||
|
* claim that you wrote the original software. If you use this software
|
||||||
|
* in a product, an acknowledgment in the product documentation would be
|
||||||
|
* appreciated but is not required.
|
||||||
|
* o Altered source versions must be plainly marked as such, and must not
|
||||||
|
* be misrepresented as being the original software.
|
||||||
|
* o This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
import object;
|
import object;
|
||||||
import std.c.stdio;
|
import std.c.stdio;
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Placed into the public domain.
|
||||||
|
* Written by Walter Bright
|
||||||
|
* www.digitalmars.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
/*
|
||||||
|
* Placed into the Public Domain.
|
||||||
|
* written by Walter Bright
|
||||||
|
* www.digitalmars.com
|
||||||
|
*/
|
||||||
|
|
||||||
import object;
|
import object;
|
||||||
import std.c.stdio;
|
import std.c.stdio;
|
||||||
|
|
|
@ -1,4 +1,10 @@
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Placed into the Public Domain
|
||||||
|
* written by Walter Bright
|
||||||
|
* www.digitalmars.com
|
||||||
|
*/
|
||||||
|
|
||||||
void _d_invariant(Object o)
|
void _d_invariant(Object o)
|
||||||
{ ClassInfo c;
|
{ ClassInfo c;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,10 @@
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Placed into the Public Domain
|
||||||
|
* written by Walter Bright
|
||||||
|
* www.digitalmars.com
|
||||||
|
*/
|
||||||
|
|
||||||
#if __cplusplus
|
#if __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,3 +1,26 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2004 by Digital Mars, www.digitalmars.com
|
||||||
|
* Written by Walter Bright
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any damages
|
||||||
|
* arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any purpose,
|
||||||
|
* including commercial applications, and to alter it and redistribute it
|
||||||
|
* freely, in both source and binary form, subject to the following
|
||||||
|
* restrictions:
|
||||||
|
*
|
||||||
|
* o The origin of this software must not be misrepresented; you must not
|
||||||
|
* claim that you wrote the original software. If you use this software
|
||||||
|
* in a product, an acknowledgment in the product documentation would be
|
||||||
|
* appreciated but is not required.
|
||||||
|
* o Altered source versions must be plainly marked as such, and must not
|
||||||
|
* be misrepresented as being the original software.
|
||||||
|
* o This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
extern (C)
|
extern (C)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,3 +1,26 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2004 by Digital Mars, www.digitalmars.com
|
||||||
|
* Written by Walter Bright
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any damages
|
||||||
|
* arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any purpose,
|
||||||
|
* including commercial applications, and to alter it and redistribute it
|
||||||
|
* freely, in both source and binary form, subject to the following
|
||||||
|
* restrictions:
|
||||||
|
*
|
||||||
|
* o The origin of this software must not be misrepresented; you must not
|
||||||
|
* claim that you wrote the original software. If you use this software
|
||||||
|
* in a product, an acknowledgment in the product documentation would be
|
||||||
|
* appreciated but is not required.
|
||||||
|
* o Altered source versions must be plainly marked as such, and must not
|
||||||
|
* be misrepresented as being the original software.
|
||||||
|
* o This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
module object;
|
module object;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
/*
|
/*
|
||||||
|
Portions of this file are:
|
||||||
Copyright Prototronics, 1987
|
Copyright Prototronics, 1987
|
||||||
Totem Lake P.O. 8117
|
Totem Lake P.O. 8117
|
||||||
Kirkland, Washington 98034
|
Kirkland, Washington 98034
|
||||||
|
@ -7,6 +8,9 @@
|
||||||
|
|
||||||
June 11, 1987 from Ray Gardner's
|
June 11, 1987 from Ray Gardner's
|
||||||
Denver, Colorado) public domain version
|
Denver, Colorado) public domain version
|
||||||
|
|
||||||
|
Use qsort2.d instead of this file if a redistributable version of
|
||||||
|
_adSort() is required.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,26 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2004 by Digital Mars, www.digitalmars.com
|
||||||
|
* Written by Walter Bright
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any damages
|
||||||
|
* arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any purpose,
|
||||||
|
* including commercial applications, and to alter it and redistribute it
|
||||||
|
* freely, in both source and binary form, subject to the following
|
||||||
|
* restrictions:
|
||||||
|
*
|
||||||
|
* o The origin of this software must not be misrepresented; you must not
|
||||||
|
* claim that you wrote the original software. If you use this software
|
||||||
|
* in a product, an acknowledgment in the product documentation would be
|
||||||
|
* appreciated but is not required.
|
||||||
|
* o Altered source versions must be plainly marked as such, and must not
|
||||||
|
* be misrepresented as being the original software.
|
||||||
|
* o This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
import std.c.stdio;
|
import std.c.stdio;
|
||||||
import std.string;
|
import std.string;
|
||||||
|
|
|
@ -52,7 +52,7 @@ OBJS= asserterror.o deh2.o switch.o complex.o gcstats.o \
|
||||||
cast.o path.o string.o memset.o math.o mmfile.o \
|
cast.o path.o string.o memset.o math.o mmfile.o \
|
||||||
outbuffer.o ctype.o regexp.o random.o linux.o \
|
outbuffer.o ctype.o regexp.o random.o linux.o \
|
||||||
stream.o switcherr.o array.o gc.o \
|
stream.o switcherr.o array.o gc.o \
|
||||||
qsort.o thread.o obj.o utf.o uri.o \
|
qsort.o qsort2.o thread.o obj.o utf.o uri.o \
|
||||||
crc32.o conv.o arraycast.o errno.o alloca.o cmath2.o \
|
crc32.o conv.o arraycast.o errno.o alloca.o cmath2.o \
|
||||||
process.o syserror.o \
|
process.o syserror.o \
|
||||||
socket.o socketstream.o stdarg.o stdio.o format.o \
|
socket.o socketstream.o stdarg.o stdio.o format.o \
|
||||||
|
@ -700,9 +700,9 @@ ti_bit.o : std/typeinfo/ti_bit.d
|
||||||
|
|
||||||
##########################################################333
|
##########################################################333
|
||||||
|
|
||||||
zip : $(ALLSRCS) linux.mak win32.mak
|
zip : $(ALLSRCS) linux.mak win32.mak phoboslicense.txt
|
||||||
rm phobos.zip
|
rm phobos.zip
|
||||||
zip phobos $(ALLSRCS) linux.mak win32.mak
|
zip phobos $(ALLSRCS) linux.mak win32.mak phoboslicense.txt
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm $(OBJS) unittest unittest.o
|
rm $(OBJS) unittest unittest.o
|
||||||
|
|
31
phoboslicense.txt
Normal file
31
phoboslicense.txt
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
Unless otherwise marked within the file, each file in the source
|
||||||
|
to the Phobos library is under the following license:
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2004 by Digital Mars, www.digitalmars.com
|
||||||
|
* Written by Walter Bright
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any damages
|
||||||
|
* arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any purpose,
|
||||||
|
* including commercial applications, and to alter it and redistribute it
|
||||||
|
* freely, in both source and binary form, subject to the following
|
||||||
|
* restrictions:
|
||||||
|
*
|
||||||
|
* o The origin of this software must not be misrepresented; you must not
|
||||||
|
* claim that you wrote the original software. If you use this software
|
||||||
|
* in a product, an acknowledgment in the product documentation would be
|
||||||
|
* appreciated but is not required.
|
||||||
|
* o Altered source versions must be plainly marked as such, and must not
|
||||||
|
* be misrepresented as being the original software.
|
||||||
|
* o This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
By plainly marking modifications, something along the lines of adding to each
|
||||||
|
file that has been changed a "Modified by Foo Bar" line
|
||||||
|
underneath the "Written by" line would be adequate.
|
||||||
|
|
19
std/file.d
19
std/file.d
|
@ -887,3 +887,22 @@ void listdir(char[] pathname, bool delegate(char[] filename) callback)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***************************************************
|
||||||
|
* Copy a file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void copy(char[] from, char[] to)
|
||||||
|
{
|
||||||
|
void[] buffer;
|
||||||
|
|
||||||
|
/* If the file is very large, this won't work, but
|
||||||
|
* it's a good start.
|
||||||
|
*/
|
||||||
|
buffer = read(from);
|
||||||
|
write(to, buffer);
|
||||||
|
delete buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,20 @@ private void toAStringz(char[][] a, char**az)
|
||||||
*az = null;
|
*az = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ========================================================== */
|
||||||
|
|
||||||
|
int spawnvp(int mode, char[] pathname, char[][] argv)
|
||||||
|
{
|
||||||
|
char** argv_ = cast(char**)alloca((char*).sizeof * (1 + argv.length));
|
||||||
|
|
||||||
|
toAStringz(argv, argv_);
|
||||||
|
|
||||||
|
return std.c.process.spawnvp(mode, toStringz(pathname), argv_);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ========================================================== */
|
||||||
|
|
||||||
int execv(char[] pathname, char[][] argv)
|
int execv(char[] pathname, char[][] argv)
|
||||||
{
|
{
|
||||||
char** argv_ = cast(char**)alloca((char*).sizeof * (1 + argv.length));
|
char** argv_ = cast(char**)alloca((char*).sizeof * (1 + argv.length));
|
||||||
|
|
17
std/string.d
17
std/string.d
|
@ -208,20 +208,25 @@ char* toStringz(char[] string)
|
||||||
}
|
}
|
||||||
body
|
body
|
||||||
{
|
{
|
||||||
char* p;
|
|
||||||
char[] copy;
|
char[] copy;
|
||||||
|
|
||||||
if (string.length == 0)
|
if (string.length == 0)
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
p = &string[0] + string.length;
|
/+ Unfortunately, this isn't reliable.
|
||||||
|
We could make this work if string literals are put
|
||||||
|
in read-only memory and we test if string[] is pointing into
|
||||||
|
that.
|
||||||
|
|
||||||
// Peek past end of string[], if it's 0, no conversion necessary.
|
/* Peek past end of string[], if it's 0, no conversion necessary.
|
||||||
// Note that the compiler will put a 0 past the end of static
|
* Note that the compiler will put a 0 past the end of static
|
||||||
// strings, and the storage allocator will put a 0 past the end
|
* strings, and the storage allocator will put a 0 past the end
|
||||||
// of newly allocated char[]'s.
|
* of newly allocated char[]'s.
|
||||||
|
*/
|
||||||
|
char* p = &string[0] + string.length;
|
||||||
if (*p == 0)
|
if (*p == 0)
|
||||||
return string;
|
return string;
|
||||||
|
+/
|
||||||
|
|
||||||
// Need to make a copy
|
// Need to make a copy
|
||||||
copy = new char[string.length + 1];
|
copy = new char[string.length + 1];
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2004 by Digital Mars, www.digitalmars.com
|
||||||
|
* Written by Walter Bright
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any damages
|
||||||
|
* arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any purpose,
|
||||||
|
* including commercial applications, and to alter it and redistribute it
|
||||||
|
* freely, in both source and binary form, subject to the following
|
||||||
|
* restrictions:
|
||||||
|
*
|
||||||
|
* o The origin of this software must not be misrepresented; you must not
|
||||||
|
* claim that you wrote the original software. If you use this software
|
||||||
|
* in a product, an acknowledgment in the product documentation would be
|
||||||
|
* appreciated but is not required.
|
||||||
|
* o Altered source versions must be plainly marked as such, and must not
|
||||||
|
* be misrepresented as being the original software.
|
||||||
|
* o This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*/
|
||||||
|
|
||||||
private import std.string;
|
private import std.string;
|
||||||
|
|
||||||
|
@ -27,7 +49,7 @@ class TypeInfo_C : TypeInfo
|
||||||
int c = 0;
|
int c = 0;
|
||||||
|
|
||||||
// Regard null references as always being "less than"
|
// Regard null references as always being "less than"
|
||||||
if (o1 != o2)
|
if (!(o1 is o2))
|
||||||
{
|
{
|
||||||
if (o1)
|
if (o1)
|
||||||
{ if (!o2)
|
{ if (!o2)
|
||||||
|
|
|
@ -66,6 +66,13 @@ printf("test2\n");
|
||||||
printf("args.length = %d\n", args.length);
|
printf("args.length = %d\n", args.length);
|
||||||
for (int i = 0; i < args.length; i++)
|
for (int i = 0; i < args.length; i++)
|
||||||
printf("args[%d] = '%s'\n", i, cast(char *)args[i]);
|
printf("args[%d] = '%s'\n", i, cast(char *)args[i]);
|
||||||
|
|
||||||
|
int[3] x;
|
||||||
|
x[0] = 3;
|
||||||
|
x[1] = 45;
|
||||||
|
x[2] = -1;
|
||||||
|
x.sort;
|
||||||
|
|
||||||
printf("Success\n!");
|
printf("Success\n!");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,7 @@ OBJS= asserterror.obj deh.obj switch.obj complex.obj gcstats.obj \
|
||||||
cast.obj syserror.obj path.obj string.obj memset.obj math.obj \
|
cast.obj syserror.obj path.obj string.obj memset.obj math.obj \
|
||||||
outbuffer.obj ctype.obj regexp.obj random.obj windows.obj \
|
outbuffer.obj ctype.obj regexp.obj random.obj windows.obj \
|
||||||
stream.obj switcherr.obj com.obj array.obj gc.obj mmfile.obj \
|
stream.obj switcherr.obj com.obj array.obj gc.obj mmfile.obj \
|
||||||
qsort.obj math2.obj date.obj dateparse.obj thread.obj obj.obj \
|
qsort.obj qsort.2.d math2.obj date.obj dateparse.obj thread.obj obj.obj \
|
||||||
iunknown.obj crc32.obj conv.obj arraycast.obj utf.obj uri.obj \
|
iunknown.obj crc32.obj conv.obj arraycast.obj utf.obj uri.obj \
|
||||||
Czlib.obj Dzlib.obj zip.obj process.obj registry.obj recls.obj \
|
Czlib.obj Dzlib.obj zip.obj process.obj registry.obj recls.obj \
|
||||||
socket.obj socketstream.obj loader.obj stdarg.obj format.obj stdio.obj \
|
socket.obj socketstream.obj loader.obj stdarg.obj format.obj stdio.obj \
|
||||||
|
@ -334,7 +334,7 @@ SRC_RECLS_NEW= \
|
||||||
|
|
||||||
phobos.lib : $(OBJS) minit.obj internal\gc\dmgc.lib etc\c\zlib\zlib.lib \
|
phobos.lib : $(OBJS) minit.obj internal\gc\dmgc.lib etc\c\zlib\zlib.lib \
|
||||||
win32.mak etc\c\recls\recls.lib
|
win32.mak etc\c\recls\recls.lib
|
||||||
lib -c phobos.lib $(OBJS) minit.obj internal\gc\dmgc.lib \
|
lib -c -p32 phobos.lib $(OBJS) minit.obj internal\gc\dmgc.lib \
|
||||||
etc\c\recls\recls.lib etc\c\zlib\zlib.lib
|
etc\c\recls\recls.lib etc\c\zlib\zlib.lib
|
||||||
|
|
||||||
######################################################
|
######################################################
|
||||||
|
@ -679,7 +679,7 @@ ti_int.obj : std\typeinfo\ti_int.d
|
||||||
|
|
||||||
######################################################
|
######################################################
|
||||||
|
|
||||||
zip : win32.mak linux.mak $(SRC) \
|
zip : win32.mak linux.mak phoboslicense.txt $(SRC) \
|
||||||
$(SRC_STD) $(SRC_STD_C) $(SRC_TI) $(SRC_INT) $(SRC_STD_WIN) \
|
$(SRC_STD) $(SRC_STD_C) $(SRC_TI) $(SRC_INT) $(SRC_STD_WIN) \
|
||||||
$(SRC_STDLINUX) $(SRC_ETC) $(SRC_ETC_C) $(SRC_ZLIB) $(SRC_GC)
|
$(SRC_STDLINUX) $(SRC_ETC) $(SRC_ETC_C) $(SRC_ZLIB) $(SRC_GC)
|
||||||
del phobos.zip
|
del phobos.zip
|
||||||
|
@ -704,7 +704,7 @@ clean:
|
||||||
|
|
||||||
install:
|
install:
|
||||||
$(CP) phobos.lib gcstub.obj \dmd\lib
|
$(CP) phobos.lib gcstub.obj \dmd\lib
|
||||||
$(CP) win32.mak linux.mak minit.obj \dmd\src\phobos
|
$(CP) win32.mak linux.mak phoboslicense.txt minit.obj \dmd\src\phobos
|
||||||
$(CP) $(SRC) \dmd\src\phobos
|
$(CP) $(SRC) \dmd\src\phobos
|
||||||
$(CP) $(SRC_STD) \dmd\src\phobos\std
|
$(CP) $(SRC_STD) \dmd\src\phobos\std
|
||||||
$(CP) $(SRC_STD_C) \dmd\src\phobos\std\c
|
$(CP) $(SRC_STD_C) \dmd\src\phobos\std\c
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue